Подтвердить что ты не робот

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>
4b9b3361

Ответ 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.