javascript - jquery事件绑定父节点时,如何阻止对子节点事件的劫持?
天蓬老师
天蓬老师 2017-04-10 12:42:34
[JavaScript讨论组]

比如下面这种:

HTML:

link

say hello world to everynone

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

jQuery:

$('.hello').click(function() {
    $('p').toggleClass('hidden');
});​

1. 当点击 .hello 任何区域都能将 p 隐藏,但我不希望点击 #link 的时候 p 也隐藏,应该如何做呢?
2. 当 #link 绑定了其他的 js 事件时,又该如何做呢?

http://jsfiddle.net/H26rM/

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(2)
黄舟

可以用JQuery的stopPropagation()方法来阻止事件冒泡。
link点击的时候处理一下:

$('#link').click(function(e){
    e.stopPropagation();
});
阿神
$('.hello').click(function(e){
  if(e.target.tagName != 'A' ){
    $('p').toggleClass('hidden');
  } 
});

判断一下点击事件的目标节点即可,当 #link 绑定了其他的 js 事件时这样处理也没问题。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号