Closed linkkingjay closed 11 years ago
tr上绑了click事件 而 checkbox上也绑了click事件,由于tr包含checkbox,当点击checkbox的时候也会触发tr上的事件。
这是由于事件的冒泡机制所引起的,比如触发一个元素上的事件,然后这个触发会一路上升,紧接着触发其父元素的click事件(如果父元素有绑定click事件的话),接着是父元素的父元素……一直上升到body,最后到document,这就是冒泡。
如果不想要这种情况发生,可以取消冒泡,比如说取消checkbox上的事件冒泡,这样就不会同时触发tr上的click事件了。
取消冒泡的方法是(假设用的是jQuery,因为有兼容问题):
在click事件函数的最后加上一行代码:
$('.checkbox').on('click', funciton(){
// …… ……
event.stopPropagation();
});
@lxjwlt 膜拜……学习了。
tr的click事件和checkbox本身的点击切换“负负得正”了。(checkbox在tr里面)。