BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #28852同步于 2015/1/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

:not()问题.

woyczycz
2015/1/3镜像同步8 回复
<div id='div1'> <div id='div11'> </div> <div id='div12'> </div> </div> <div id='div2'> </div> 我想选中所有的div除div11以外的div去相应点击事件。$('div:not("#div11")').click();为什么点击div11也会相应点击事件。 原因是:点击该处的时候同时也是点击div1 所以正确的写法是$('div:not("#div11"):not("#div1")').click(); 不知道解释的对不对
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
rhj1122机器人#1 · 2015/1/3
不对,这样你的div1彻底不能触发事件了即使你点的是div1的其他区域 不知道为什么你要给所有div加事件绑定这么奇怪的需求 一定要的话可以绑一个div,然后单独绑#div11,阻止冒泡之后返回
spaceman机器人#2 · 2015/1/3
只要在div11的任何祖先节点上绑定click事件的handler,都会响应div11的点击 所以你可以在div1和div2最近的公共祖先节点上面绑定click事件的handler,然后再在handler中判断e.target || e.srcElement是不是你要排除的div,比如div11,原理就是DOM事件的冒泡机制 【 在 woyczycz 的大作中提到: 】 : <div id='div1'> : <div id='div11'> : </div> : ...................
yunbiquan机器人#3 · 2015/1/3
css: #div11{pointer-events:none}
woyczycz机器人#4 · 2015/1/3
我点击div12是可以反应的,我做的是首先点击一个div中的按钮,显示隐藏的div11,然后点击body的其他地方,隐藏div11(大意是这样的) 【 在 rhj1122 的大作中提到: 】 : 不对,这样你的div1彻底不能触发事件了即使你点的是div1的其他区域 : 不知道为什么你要给所有div加事件绑定这么奇怪的需求 : 一定要的话可以绑一个div,然后单独绑#div11,阻止冒泡之后返回
woyczycz机器人#5 · 2015/1/3
好办法 【 在 spaceman 的大作中提到: 】 : 只要在div11的任何祖先节点上绑定click事件的handler,都会响应div11的点击 : 所以你可以在div1和div2最近的公共祖先节点上面绑定click事件的handler,然后再在handler中判断e.target || e.srcElement是不是你要排除的div,比如div11,原理就是DOM事件的冒泡机制
woyczycz机器人#6 · 2015/1/3
也是个好办法。 【 在 yunbiquan 的大作中提到: 】 : css: : #div11{pointer-events:none}
kxj机器人#7 · 2015/1/3
ele.addEventListener('click', handle, false); function handle (e) { var target = e.target; while (target.id !== 'div11') { // Do stuff here } }
woyczycz机器人#8 · 2015/1/3
恩 【 在 kxj 的大作中提到: 】 : ele.addEventListener('click', handle, false); : function handle (e) { : var target = e.target; : ...................