我有几个相互嵌套的 div。每个都有自己的 onclick 事件。所以,想象一下它就像一个三明治,最底层是面包(这一层在地理上比嵌套在里面的那些要大),然后是生菜,然后是上面的番茄。
所以,它看起来像这样:
---------------------------
| Bread |
| |
| ----------------------- |
| | Lettuce | |
| | | |
| | ------------------- | |
| | |Tomato | | |
| | | | | |
| | | <*click> | | |
| | | | | |
| | | | | |
| | ------------------- | |
| ----------------------- |
---------------------------
目前,当用户点击西红柿时,它会触发西红柿的正确序列,但随后出现问题。因为一旦发射番茄,它就会递归发射生菜,最后发射面包。
我想它这样做是因为从技术上讲,用户确实在这些 div 中单击,但只是因为番茄嵌套在其中。
它应该的工作方式是,如果用户点击三明治的番茄部分,那么它应该只触发番茄的事件。另一方面,如果用户点击在西红柿后面露出的生菜部分,那么它应该触发生菜。
所以,我的问题是,是否可以使 div 对于点击“不透明”,这样即使它们相互嵌套,也只有实际点击的那个才算数。
最佳答案
您可以在当前处理程序代码之后添加一个 return false
以防止点击冒泡或传播...这就是导致父级上的 click
事件的原因元素。
我建议阅读以下内容以更好地理解正在发生的事情:quirksmode.org's excellent explanation of event bubbling .
关于css - 多个 onClick 事件触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3808644/