我为我的页面正文设置了一个“onmousedown”事件处理程序。在这个页面中有一些div元素,是否可以忽略这些div的点击,并且只使用正确的坐标激活正文的onmousedown事件处理程序,就像div不存在一样?
答案 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');
}
});
});
答案 5 :(得分:0)
您还可以使用event.target
来确定用户点击的位置。只需在主体的事件监听器中添加以下代码段:
if($(e.target).is('div')){
return false;
}
<强> Demo 强>
.is()
当然可以与特定的分类或其他选择器一起使用。
<强>参考强>
答案 6 :(得分:0)
试试这个:http://jsfiddle.net/eaL53d62/1/
(function(){
$('#body').on('mousedown', ':not(.not-clickable)', function(e){
alert('clicked');
});
}());
具体来说,使用:not()选择器将忽略特定元素