防止执行父事件处理程序
我有一个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时