32

如果用户在 div 内单击,我希望 .click 什么都不做<p>text</p>,对于我希望 div .click 工作的所有其他内容。

HTML:

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

查询:

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

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

        alert("woohoo!");

    }); 

});
</script>
4

3 回答 3

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

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

于 2012-05-18T02:41:29.723 回答
2
<script>
$( document ).ready(function() {
    $( "div :not(p)" ).click(function( event ) {
        alert( "woohoo!" );
    }); 
});
</script>

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

于 2012-05-18T03:15:45.103 回答
-2
$("div > span").click(function() {

    alert("woohoo!");

}); 

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

于 2012-05-18T02:41:55.720 回答