复选框 onchange 触发两次

Sem*_*vum 2 checkbox jquery onchange

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

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

复选框如下所示:

<input type="checkbox" name="auswahl[]" id="aus_nunatsiaqnews_ca"><label for="aus_nunatsiaqnews_ca" title="Canada">Nunatsiaq News</label>
Run Code Online (Sandbox Code Playgroud)

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

Tom*_*ias 5

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

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

myFunc($event) {
  // ... some code ... //
  $event.stopPropagation();
}
Run Code Online (Sandbox Code Playgroud)