我整整一个下午都在挣扎,没有任何帮助我就无法继续下去。
直截了当。
// 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
条件仍然是假的。如果条件为假,我不明白为什么它会被执行。我可能会失踪或做错事。
答案 0 :(得分:5)
当事件发生时,只运行(并重新运行)处理程序中的代码
。以下是代码运行的顺序:
创建stop
变量并将其设置为false
。
连接change
和input
处理程序。
检查if (stop === false)
,由于这是真的,请执行if
块中的代码。
稍后,只要值发生变化,请将stop
设置为true
。这对于在步骤#3中运行的代码没有任何影响。