jQuery:仅单击此元素

发布于 2024-12-04 07:55:55 字数 311 浏览 1 评论 0原文

超级技术绘图

在上面这张极具艺术性的绘图中,绿色方块是粉色方块的子项。粉色的方块通过我的功能包裹在绿色的方块周围,因此绿色方块可以是任何东西 - 超链接、图像、按钮等。

我只想捕获粉色 div 上的点击(仅当它不是点击时)绿色元素也是如此。

这可以通过在绿色方块上使用 mouseenter 翻转布尔值来完成,但这对我来说似乎是一种混乱的方法。

有什么线索吗?

重要编辑:我根本不能弄乱绿色方块,所以不要向点击事件添加任何内容。

Super-technical drawing

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

泅渡 2024-12-11 07:55:55

你可以这样做:

$('.pink-box-selector').click(function(e) {
    if ($(e.target).is('.pink-box-selector')) {
        // do stuff here
    }
});

You can do this:

$('.pink-box-selector').click(function(e) {
    if ($(e.target).is('.pink-box-selector')) {
        // do stuff here
    }
});
ゞ记忆︶ㄣ 2024-12-11 07:55:55

两个选择。您可以首先检查目标是否是绿色 div。

$('#pinkdiv').click(function(e) {
  if ($(e.target).is('#greendiv')) return;
  // handle the event
});

或者,您可以正常为粉色 div 编写点击处理程序,并停止传播绿色 div 上的点击。

$('#greendiv').click(function(e) {
  e.stopPropagation();
});

Two options. You can first either check if the target is the green div.

$('#pinkdiv').click(function(e) {
  if ($(e.target).is('#greendiv')) return;
  // handle the event
});

Or you can write the click handler for the pink div normally and stop clicks on the green div from propagating.

$('#greendiv').click(function(e) {
  e.stopPropagation();
});
一向肩并 2024-12-11 07:55:55

$("#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/

怪我入戏太深 2024-12-11 07:55:55

为“绿色”元素设置一个单独的点击事件侦听器,并让它 event.preventDefault()

Setup a separate click event listener for the "green" element and have it event.preventDefault()

她说她爱他 2024-12-11 07:55:55

http://jsfiddle.net/rlemon/d8qVp/

$("#pink").click(function(){
    if(!$("#green").is(":hover")) {
        alert('here');   
    }
});

http://jsfiddle.net/rlemon/d8qVp/

$("#pink").click(function(){
    if(!$("#green").is(":hover")) {
        alert('here');   
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文