Переменная не обновляется в addeventlistener после изменения значения - PullRequest
0 голосов
/ 11 июля 2019

У меня переменная установлена ​​на false. У меня также есть addEventListener, поэтому, когда я нажимаю на кнопку, она должна показывать мне значение переменной (true или false).

У меня есть другая кнопка, которая изменяет значение переменной на 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/

1 Ответ

1 голос
/ 11 июля 2019

Вы перепутали область действия переменной. Чтобы установить переменную status, находящуюся вне области действия функции, используйте:

function setStatusTrue() {
    status = true;
}

Подробнее об областях можно узнать здесь

...