我在这样的复选框上附加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>
不幸的是,事件发生了两次。当我隔离上面给出的代码并将其放在测试页面上时,一切都很好,事件只发射一次。 需要帮助。
答案 0 :(得分:1)
当具有“onClick”事件的控件嵌套在具有“onClick”事件的另一个控件内时,通常会发生这种情况。单击其中一个元素会触发两个元素的事件,因为无法知道要单击哪个元素。 幸运的是,这可以在Javascript中防止。在HTML中,将“$ event”参数传递给处理click事件的函数,如下所示:
onClick="myFunc($event)"
然后,在“myFunc”中使用“stopPropagation”:
myFunc($event) {
// ... some code ... //
$event.stopPropagation();
}