忽略点击div

时间:2015-05-28 14:02:57

标签: javascript jquery html

我为我的页面正文设置了一个“onmousedown”事件处理程序。在这个页面中有一些div元素,是否可以忽略这些div的点击,并且只使用正确的坐标激活正文的onmousedown事件处理程序,就像div不存在一样?

7 个答案:

答案 0 :(得分:11)

如果您想要点击div而不产生任何结果,请使用此CSS声明:

div {
pointer-events: none;
}

或使用它来通过点击div来阻止任何事件被触发:

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

答案 1 :(得分:2)

是的,将stopPropagation();添加到您的div以阻止点击事件冒泡。

$("div").click(function(e) {
    e.stopPropagation();
});

答案 2 :(得分:1)

示例以避免点击div

$("body :not(div)").click(function(){alert("Test")})

答案 3 :(得分:1)

为要忽略点击次数的div元素添加自定义类(例如,ignore-clicks):

div.ignore-clicks {
    pointer-events: none;
}

答案 4 :(得分:1)

因为你使用jquery

$(document).ready(function() {

    $('body').click(function(e) {
        if (e.target == this) { 
            alert('Parent was clicked');
        }
    });

});

https://jsfiddle.net/1ox8akcx/1/

答案 5 :(得分:0)

您还可以使用event.target来确定用户点击的位置。只需在主体的事件监听器中添加以下代码段:

if($(e.target).is('div')){
    return false;
}

<强> Demo

.is()当然可以与特定的分类或其他选择器一起使用。

Demo 2

<强>参考

.is()

答案 6 :(得分:0)

试试这个:http://jsfiddle.net/eaL53d62/1/

(function(){
    $('#body').on('mousedown', ':not(.not-clickable)', function(e){
        alert('clicked');
    });
}());

具体来说,使用:not()选择器将忽略特定元素