JQuery .click - 排除div中的特定元素

时间:2012-05-18 02:39:39

标签: jquery

如果用户点击div中的<p>text</p>,我希望.click不执行任何操作,因为我想让div .click工作。

HTML:

<div>
    <span>yes</span>
    <p>text</p>
</div>

Jquery的:

<script>
$(document).ready(function() {

    $("div").click(function() {

        alert("woohoo!");

    }); 

});
</script>

3 个答案:

答案 0 :(得分:83)

   $("div").click(function(e) {
        if($(e.target).is('p')){
            e.preventDefault();
            return;
        }
        alert("woohoo!");
    }); 

检查点击的目标。这样你就不需要绑定另一个事件了。

答案 1 :(得分:2)

<script>
$( document ).ready(function() {
    $( "div :not(p)" ).click(function( event ) {
        alert( "woohoo!" );
    }); 
});
</script>

这意味着您不关心文本节点作为<div>容器的子节点。

答案 2 :(得分:-2)

$("div > span").click(function() {

    alert("woohoo!");

}); 

但是你最好为你的html元素提供id。