javascript - 返回变量值以在另一个函数中使用

标签 javascript jquery scope undefined

显然我对变量作用域仍然很不稳定。 btn2 有什么方法可以获取由单选按钮更新的 3 或 1 个 numHints 的值吗? (当前返回未定义)。

jsfiddle

HTML:

<input id="btn" type="button" value="btn">
<br>
<form id="Difficulty">
    <input checked="checked" type="radio" name="difficulty" id="easier">Easier
    <br>
    <input type="radio" name="difficulty" id="harder">Harder</form>
</div>
<br/>
<input id="btn2" type="button" value="btn2">

JS:

 var numHints;
 $('#btn').on('click', function () {
     var difficulty = $('input[name="difficulty"]:checked', '#Difficulty').attr('id');
     if (difficulty == "easier") {
         numHints = 3;
     } else {
         numHints = 1;
     }
     console.log(numHints);
     return numHints; // doesn't work
 });

 $('#btn2').on('click', function () {
     console.log(numHints); // undefined, need numHints available in here
 });

最佳答案

只有先单击#btn才会起作用,否则该变量未定义。 您可以用一个值初始化它:

var numHints = 3;

此外,您的返回没有意义

关于javascript - 返回变量值以在另一个函数中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31659876/

相关文章:

jQuery。 get text() 来保留空白/空格

javascript - 鼠标y移动的图像动画

c - 为什么调用此函数会产生错误 "<function> is not a function or function pointer"?

javascript - 使用 EaselJS 库在 Firefox 中移动缓慢

javascript - 通过 jquery 获取多个选择框的值

jQuery 追加对象并添加字符串

jsf - 如何从 View 范围的 JSF bean 中获取请求参数?

Java 全局变量作用域

javascript - 如何过渡路径的线性渐变

javascript - 在componentDidMount()内部的两个 `then`中执行函数