为了账号安全,请及时绑定邮箱和手机立即绑定

防止执行父事件处理程序

防止执行父事件处理程序

防止执行父事件处理程序我有一棵迪夫树:<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”的单击?谢谢
查看完整描述

3 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

可以为子事件添加一个处理程序,防止单击事件传播:

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

这样点击到'#b'不会传播到'#a'..也不会点击'#c''#b',因此不会'#a'.


查看完整回答
反对 回复 2019-07-01
?
噜噜哒

TA贡献1784条经验 获得超7个赞

使用

事件停止传播()

停止将事件冒泡到父元素,从而防止任何父处理程序被通知该事件。

单击b和c


查看完整回答
反对 回复 2019-07-01
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

甚至可以使用$(“.clickyClass a”).Click(函数(E){e.topPropagation();});假设.clickyClass有一个单击处理程序 

查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 394 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信