我被这段代码困住了,不明白为什么它不能像我预期的那样工作。这样,每次单击 #btn
时, bool 变量“x”都会更改其值:
$(document).ready(function() {
var x = false;
$("#btn").click(function() {
toggleBtn(x);
x = !x;
});
function toggleBtn(x) {
if (!x) {
doThis();
} else {
doThat();
}
};
});
但是这样,“x”不会改变它的值:
$(document).ready(function() {
var x = false;
$("#btn").click(function() {
toggleBtn(x);
});
function toggleBtn(x) {
if (!x) {
doThis();
} else {
doThat();
}
x = !x;
};
});
这是为什么?
最佳答案
因为你有两个 x
个变量。
这里声明一个:
var x = false;
另一个在这里声明:
function toggleBtn(x) {
在第一个示例中,您要更新第一个 x
的值。在第二个示例中,您正在更新 second x
的值。当函数结束并被销毁时,它会立即超出范围。
关于javascript - bool 值不会改变它的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39297646/