js事件委托,某些子元素不触发事件改如何处理呢?
js事件委托,某些子元素不触发事件改如何处理呢?
如:
<ul>
<li>
<a>11111</a>
</li>
<li>
<a>11111</a>
</li>
<li>
<a>11111</a>
</li>
<li>
<a>11111</a>
</li>
<li>
<a>11111</a>
</li>
</ul>
我想当鼠标移动到后面5个li中时,事件才执行。仅仅移动到ul,或者第1个<li><a>11111</a></li>
时不执行。
我该怎么做呢。
我为ul绑定‘mouseenter’时,它只会在移动到ul范围执行。
绑定‘mousemove’时,我给ul和不需要执行事件的li都个notRun
的属性,有这个属性时它就不执行事件。但是li中的所有子元素还是会触发事件,难道我还要把li的子元素也加上notRun
属性吗?
我应该怎么做才更合理呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你移入li时e.target是li,在文字上是e.target是a了,给a一个穿透的css,这样移入的全是li了,
或者你判断e.target是a的话,则是e.target.parentNode的getAttribute("notRun"),否者就是e.target的getAttribute("notRun")
用事件委托的话应该是所有的都要执行的,只不过你可能需要判断是第几个元素,之后做一个特定的处理,其余的都忽略。
事件委托同级元素通过判断属性加以阻止,父级元素通过组织冒泡加以阻止。