没有断点/调试器时双重调用.change()方法

时间:2019-06-28 10:46:45

标签: javascript jquery ajax events javascript-events

因此,对于某些输入和AJAX调用,我有一个.change()事件。当我更改输入的值时,将两次调用AJAX方法,并两次触发.change()事件。但是当我放一个“调试器”时或文件中的断点仅被调用一次。

我已经记录了事件变量,对于第一次调用.isTrigger不存在,但是对于第二次调用,它分配的值为3。 我无法跟踪第二个呼叫/触发器来自何处。有人知道吗?

$('#inputField').change(function(e) {
    console.log(e);
    // first call e.isTrigger is 'undefined'
    // second call e.isTrigger is '3'
});

我为防止第二次呼叫所做的是:

if ($(this).attr('id') == 'inputField' && typeof(e.isTrigger) != 'undefined') {
    e.preventDefault();
    e.stopPropagation();

   return;
}

但是我更多地将其视为解决方法,而不是解决方案。

1 个答案:

答案 0 :(得分:0)

选择器一定有问题。对于选择标签,某些插件会创建虚拟选择输入和div,因此请尝试

$('select#inputField').on('change', function(){

}

另外,检查多个jquery文件或更新jquery版本(如果可行)。