【发布时间】:2014-09-17 04:34:01
【问题描述】:
我的代码中有一个非常烦人的问题。
当我更改复选框状态时,它的父级的单击事件也会触发。 我尝试了不同的方法来解决这个问题,例如:
event.stopImmediatePropagation();event.stopPropagation();event.preventDefault();return false
不幸的是,没有人为 be 工作(可能与“事件传播”问题无关)。如何使 ('.sortable').click 在复选框更改时不被解雇?
HTML
<div class="sortable">
<span>Hello all!</span><br />
<label>Click on me<input type="checkbox" checked="checked" /></label>
</div>
jQuery
$(function(){
$('.sortable input[type=checkbox]').change(function(event){
event.stopImmediatePropagation();
event.stopPropagation();
event.preventDefault();
alert('checkbox changed');
});
$('.sortable').click(function(){
alert('sortable clicked');
});
});
您可以在以下位置找到代码:Demo
【问题讨论】:
-
你在这里处理两种不同的类型事件——你不能“取消”冒泡的click事件是很自然的父元素,当您只处理复选框上的 change 事件时。
-
复选框上的第一个事件也需要是
click事件。
标签: javascript jquery html dom javascript-events