javascript - 基本 Javascript/jQuery 数学游戏 : Why can't I evaluate the second time I run this function?

标签 javascript jquery function math

这里是自学成才的 JS 新手程序员。我正在尝试通过制作一个基本的加法游戏来练习我所学到的知识。现在还不是很流畅,但我只是想了解基本功能。

我现在想做的就是在用户正确回答后不断生成问题(无需刷新页面)。而且它仅在第一次时有效。

首先,我创建了一个函数来生成随机数,我可以对其进行评估并将它们放在页面上。 Click here to see the jsfiddle I made

    // GENERATE AND INSERT NUMBERS

function getRandomInt (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min;
}
function Operation() {
    var self = this;
    var $numberOne = getRandomInt(0,20);
    var $numberTwo = getRandomInt(0,20);
    $numberHolderOne.html($numberOne);
    $numberHolderTwo.html($numberTwo);
    self.quest = $numberOne + $numberTwo;
    self.solution = eval (self.quest);
}
    Operation();

然后我评估,我想提醒用户他们是否正确、错误或未输入有效字符。如果用户是正确的,我想在页面上提出一个新问题。

            //EXECUTE ON CLICK
$goButton.on('click', function(e) {
    e.preventDefault();
    var myAnswer = $('input:text').val();

            if (myAnswer == self.solution)  {
            alert( "You did it!" );
            new Operation();
                }     
            else if (isNaN(myAnswer)) {
            alert("Numbers Only yo!");
        }
            else {
            alert("Try Again Please");
        }
     });

就像我说的,它有效! ...有点。只要您仅提交第一个问题的正确答案,它就会生成新问题。为什么?我的意思是,我正在运行一个新函数,这些变量是在该函数中定义的。我有什么遗漏的吗?这是范围问题吗?

最佳答案

您已经创建了该 block 的本地变量 self ,请使其可供您为“执行”按钮编写的函数访问。

我已经编辑了 fiddle ,请引用这个链接:js fiddle link

关于javascript - 基本 Javascript/jQuery 数学游戏 : Why can't I evaluate the second time I run this function?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29138096/

相关文章:

javascript - krajee bootstrap 文件输入上传

oracle - 获取Oracle PL/SQL中调用过程或函数的名称

c - 在 C 中从另一个函数调用一个函数时出错

Javascript:计算给定年份的月份天数

javascript - 如何在javascript中将对象数组中的键名称更改为值以及将值更改为键名称

javascript - 如何在ACE编辑器中高亮某一行?

javascript - 如何通过 HTMLService (Google App Scripts) 将电子表格数据放入客户端数组

javascript - 在字符串中的字符之间添加空格

php - 将 jQuery.ajax 数据同时发送到表单提交

javascript - 使用递归输出所有嵌套数组元素