在上面的高艺术画中,绿色广场是粉红色的孩子。粉红色的一个用我的功能包裹在绿色的那个,所以绿色方块可以是任何东西 - 超链接,图像,按钮等。
如果不是点击绿色元素,我想捕捉粉红色div上的点击。
这可以通过在绿色方块上使用mouseenter翻转布尔值来完成,但这对我来说似乎是一种混乱的方式。
任何线索?
重要编辑:我根本不会弄乱绿色方块,所以不要在点击事件中添加任何内容。
答案 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');
}
});