javascript - bool 值不会改变它的值

标签 javascript jquery

我被这段代码困住了,不明白为什么它不能像我预期的那样工作。这样,每次单击 #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/

相关文章:

javascript - 使用 jquery 或 javascript 删除部分属性值

jquery - 如何修复按钮,使其不随内容滚动

jQuery 检查 css 自定义复选框是否被选中

php - css jquery 只显示正在播放的一个

导入后 JavaScript 无法识别代码

javascript - 处理动态填充表中新内容的简便方法?

javascript - 外部 JavaScript 文件无法在 Angular 2 中工作

php - 如何在 PHP 中回显动态 session 变量?

php - jquery、ajax返回奇怪的数据?

javascript - 如何缩短这个函数(addClass,attr)