【问题标题】:Variable not updating in addeventlistener after value change值更改后变量未在 addeventlistener 中更新
【发布时间】:2019-07-10 21:02:01
【问题描述】:

我有一个变量设置为false。我还有一个addEventListener,所以当我点击按钮时,它应该会显示变量的值(真或假)。

我有另一个按钮可以将变量的值更改为true。因此,当我按下该按钮将其更改为 true,然后使用 addEventListener 按钮检查变量的值时,它应该反映为 true。问题是它没有。

按下“设置状态”按钮后,它应该会提示状态为true。为什么值没有变化?

代码如下:

<button id="button">Set Status</button>
<br>
<button id="check-status">Check Status</button>

<script>
var status = false;

document.getElementById('check-status').addEventListener('click', function(event) {
    if(status === false) {
        alert('The status is false');
    } else {
        alert('The status is true');
    }
});

document.getElementById("button").onclick = function fun() {
    setStatusTrue();
}

function setStatusTrue() {
    var status = true;
}
</script>

演示链接:https://jsfiddle.net/xpLuh0ew/

【问题讨论】:

    标签: javascript jquery onclick onclicklistener addeventlistener


    【解决方案1】:

    你弄乱了变量的范围。要设置函数范围之外的 status 变量,请使用:

    function setStatusTrue() {
        status = true;
    }
    

    您可以阅读有关范围的更多信息here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-25
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多