jQuery:仅单击此元素
在上面这张极具艺术性的绘图中,绿色方块是粉色方块的子项。粉色的方块通过我的功能包裹在绿色的方块周围,因此绿色方块可以是任何东西 - 超链接、图像、按钮等。
我只想捕获粉色 div 上的点击(仅当它不是点击时)绿色元素也是如此。
这可以通过在绿色方块上使用 mouseenter 翻转布尔值来完成,但这对我来说似乎是一种混乱的方法。
有什么线索吗?
重要编辑:我根本不能弄乱绿色方块,所以不要向点击事件添加任何内容。
In the highly-artistic drawing above, the green square is a child of the pink one. The pink one is wrapped around the green one by my function, so the green square could be anything - a hyperlink, an image, button, etc.
I want to capture a click on the pink div ONLY if it isn't a click on the green element too.
This could be done by flipping a Boolean using mouseenter on the green square, but that seems a messy way to do it to me.
Any clues?
IMPORTANT EDIT: I can't mess with the green square at all, so no adding anything to the click event.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你可以这样做:
You can do this:
两个选择。您可以首先检查目标是否是绿色 div。
或者,您可以正常为粉色 div 编写点击处理程序,并停止传播绿色 div 上的点击。
Two options. You can first either check if the target is the green div.
Or you can write the click handler for the pink div normally and stop clicks on the green div from propagating.
$("#div_id :not('#excluded_element')).click();
有帮助吗?http://api.jquery.com/not-selector/
Would
$("#div_id :not('#excluded_element')).click();
help?http://api.jquery.com/not-selector/
为“绿色”元素设置一个单独的点击事件侦听器,并让它
event.preventDefault()
Setup a separate click event listener for the "green" element and have it
event.preventDefault()
http://jsfiddle.net/rlemon/d8qVp/
http://jsfiddle.net/rlemon/d8qVp/