JQuery.click - исключить определенные элементы внутри div
Я хочу .click ничего не делать, если пользователь нажимает <p>text</p>
внутри div, для всего остального я хочу, чтобы div.click работал.
HTML:
<div>
<span>yes</span>
<p>text</p>
</div>
Jquery:
<script>
$(document).ready(function() {
$("div").click(function() {
alert("woohoo!");
});
});
</script>
Ответы
Ответ 1
$("div").click(function(e) {
if($(e.target).is('p')){
e.preventDefault();
return;
}
alert("woohoo!");
});
проверить цель клика. таким образом вам не нужно связывать другое событие.
Ответ 2
<script>
$( document ).ready(function() {
$( "div :not(p)" ).click(function( event ) {
alert( "woohoo!" );
});
});
</script>
Это означает, что вам не нужны текстовые узлы в качестве дочерних элементов контейнера <div>
.
Ответ 3
$("div > span").click(function() {
alert("woohoo!");
});
Но вам лучше предоставить идентификаторы для вашего элемента html.