防止执行父事件处理程序

我有一个div的树:

<div id="a" onclick="func"> <div id="b" onclick="func"> <div id="c" onclick="func"> </div> </div> </div> 

当在一个div上点击时,它会让孩子看不见 – 也就是说点击“a”会变成“b”和“c”不可见。

 function func{ if ($(childId).hasClass("visible")){ $(childId).removeClass("visible"); $(childId).addClass("invisible"); } 

问题是:点击“b”将调用“a”的点击,使“b”和“c”不可见。 如何禁用点击“a”使用jQuery?

谢谢

您可以添加一个处理程序来防止点击事件传播:

 function handler(event) { event.stopPropagation(); // now do your stuff } $('#a').add('#b').click(handler); 

这种方式点击到'#b'不会传播到'#a' 。 也不会点击'#c'转到'#b' ,因此不会'#a'

使用

event.stopPropagation()

停止事件冒泡到父元素,阻止任何父处理程序被通知事件。

当点击b和c时