即使条件为假,代码也会被执行

时间:2017-04-19 16:18:59

标签: jquery

我整整一个下午都在挣扎,没有任何帮助我就无法继续下去。

直截了当。

// On document ready
$(function() {
    var stop = false;
    $('#update-cart :input').on('change input', function() {
        // Here you go
        stop = true;
    });

    if (stop === false) {
        // For some(silly) reason It gets executed on input field change 
    }
});

如果我理解正确,除非输入字段有一些变化,否则上面的代码会继续if语句,而它会设置新变量。所以if条件仍然是假的。如果条件为假,我不明白为什么它会被执行。我可能会失踪或做错事。

1 个答案:

答案 0 :(得分:5)

当事件发生时,只运行(并重新运行)处理程序中的代码

以下是代码运行的顺序:

  1. 创建stop变量并将其设置为false

  2. 连接changeinput处理程序。

  3. 检查if (stop === false),由于这是真的,请执行if块中的代码。

  4. 稍后,只要值发生变化,请将stop设置为true。这对于在步骤#3中运行的代码没有任何影响。