防止执行父事件处理程序

防止执行父事件处理程序

我有一棵迪夫树:

<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”不可见。如何使用jQuery禁用对“a”的单击?

谢谢


泛舟湖上清波郎朗
浏览 395回答 3
3回答

qq_遁去的一_1

可以为子事件添加一个处理程序,防止单击事件传播:function&nbsp;handler(event)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;event.stopPropagation(); &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;now&nbsp;do&nbsp;your&nbsp;stuff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}$('#a').add('#b').click(handler);这样点击到'#b'不会传播到'#a'..也不会点击'#c'去'#b',因此不会'#a'.

噜噜哒

使用事件停止传播()停止将事件冒泡到父元素,从而防止任何父处理程序被通知该事件。单击b和c

慕哥6287543

甚至可以使用$(“.clickyClass a”).Click(函数(E){e.topPropagation();});假设.clickyClass有一个单击处理程序&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP