复选框onchange两次射击

时间:2016-08-29 09:10:54

标签: jquery checkbox onchange

我在这样的复选框上附加onchange事件:

$("input[type='checkbox'][name='auswahl[]']").on("change", function() {
    alert($(this).attr("id") + ' ' + $("label[for='" + $(this).attr("id") + "']").text() + $(this).attr("checked"));
});

复选框如下所示:

<input type="checkbox" name="auswahl[]" id="aus_nunatsiaqnews_ca"><label for="aus_nunatsiaqnews_ca" title="Canada">Nunatsiaq News</label>

不幸的是,事件发生了两次。当我隔离上面给出的代码并将其放在测试页面上时,一切都很好,事件只发射一次。 需要帮助。

1 个答案:

答案 0 :(得分:1)

当具有“onClick”事件的控件嵌套在具有“onClick”事件的另一个控件内时,通常会发生这种情况。单击其中一个元素会触发两个元素的事件,因为无法知道要单击哪个元素。 幸运的是,这可以在Javascript中防止。在HTML中,将“$ event”参数传递给处理click事件的函数,如下所示:

onClick="myFunc($event)"

然后,在“myFunc”中使用“stopPropagation”:

myFunc($event) {
  // ... some code ... //
  $event.stopPropagation();
}