jQuery更改事件被调用两次

Isr*_*ael 33 html javascript jquery onchange

我有一个带有一些输入和选择框的表单,每个都有class="myClass".我还有以下脚本:

$(document).ready(function() {
    $(".myClass").change(function() {
        alert('bla');
    })
});
Run Code Online (Sandbox Code Playgroud)

我不明白为什么在选择框或输入框中的每次更改后,此函数被调用两次.这有什么不对?

感谢您的帮助!

Mar*_*ein 47

我能想到的是你在表单上使用了同一个类.如果是这样,请从表单标记中删除myClass样式.

更正:http: //jsfiddle.net/rY6Gq/1/

有故障的双重警报:http: //jsfiddle.net/rY6Gq/


jwe*_*ebb 24

e.stopImmediatePropagation(); 是什么对我有用.

$(document).ready(function() {
    $(".myClass").change(function(e) {
        e.stopImmediatePropagation();
        alert('bla');
    })
});
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么在我的情况下会发生这种情况(“更改”事件被触发两次),但我确实知道您的解决方案对我有用! (2认同)
  • 它就像一个魅力! (2认同)

die*_*eke 9

这是一个错误,你要添加

$("#some_id").unbind('change');
Run Code Online (Sandbox Code Playgroud)

在任何变更电话之前


Sel*_*lay 5

当您绑定的同一个类或任何属性也具有相同的父级或子级名称时,就会发生这种情况。显然,当您更改子项时,父项也会更改(其子项更改)。如果它们具有相同的类或属性,则应触发两次。例如,在下面如果您绑定到“myClass”,它将被调用两次。

<div class="myclass">
<select class="myClass">   </select>
</div>
Run Code Online (Sandbox Code Playgroud)