jQuery:点击* only * this元素

时间:2011-09-14 14:46:48

标签: javascript jquery click parent-child

Super-technical drawing

在上面的高艺术画中,绿色广场是粉红色的孩子。粉红色的一个用我的功能包裹在绿色的那个,所以绿色方块可以是任何东西 - 超链接,图像,按钮等。

如果不是点击绿色元素,我想捕捉粉红色div上的点击。

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

任何线索?

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

5 个答案:

答案 0 :(得分:8)

你可以这样做:

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

答案 1 :(得分:5)

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

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

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

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

答案 2 :(得分:1)

$("#div_id :not('#excluded_element')).click();会有帮助吗? http://api.jquery.com/not-selector/

答案 3 :(得分:0)

为“green”元素设置单独的单击事件侦听器,并将其event.preventDefault()

答案 4 :(得分:0)

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

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