2015-05-28 3 views
2

Я установил обработчик событий «onmousedown» для тела моей страницы. На этой странице есть некоторые элементы div, можно ли игнорировать щелчки на этих div и просто запускать обработчик события onmousedown тела с правильными координатами, как если бы divs не присутствовали?Игнорировать нажмите на div

+0

крыла нам некоторый код .. – R4nc1d

ответ

9

Если вы хотите, нажмите на DIV, чтобы привести ничего, использовать этот CSS заявление:

div { 
pointer-events: none; 
} 

или использовать это, чтобы остановить любое событие, от стрельбы по кликни на DIV:

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

указателя-событие является то, что я искал! – Sean

2

Да, добавьте stopPropagation(); в свои divs, чтобы остановить событие click от пузырьков.

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

образца, чтобы избежать нажмите на DIV

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

Добавить пользовательский класс в div элементы, которые вы хотите игнорировать клики (скажем, ignore-clicks):

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

Вы также можете используйте event.target, чтобы определить, где пользователь нажал. Просто объявления следующий фрагмент внутри событийного слушателя для тела:

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

Demo

.is(), конечно, могут быть использованы с определенными классифицируемых или других селекторов.

Demo 2

Ссылка

.is()

1

, как и использовать JQuery

$(document).ready(function() { 

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

}); 

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

+0

он сохранил другую вещь. обновлено. –

0

Try THI s: http://jsfiddle.net/eaL53d62/1/

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

В частности, с помощью: нет() селектора будет игнорировать определенные элементы

Смежные вопросы