vtmer / gdut-jwgl-helper

广东工业大学教务管理系统助手
http://projects.vtmer.com/gdut-jwgl-helper/
41 stars 15 forks source link

点击复选框没效果 #12

Closed linkkingjay closed 11 years ago

linkkingjay commented 11 years ago

tr的click事件和checkbox本身的点击切换“负负得正”了。(checkbox在tr里面)。

lxjwlt commented 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();
});
bcho commented 11 years ago

TIL

linkkingjay commented 11 years ago

@lxjwlt 膜拜……学习了。