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

sup*_*lle 29 jquery

我希望.click如果用户点击<p>text</p>div内部什么都不做,因为其他一切我想让div .click工作.

HTML:

<div>
    <span>yes</span>
    <p>text</p>
</div>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

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

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

        alert("woohoo!");

    }); 

});
</script>
Run Code Online (Sandbox Code Playgroud)

mko*_*yak 88

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

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

  • 不必要的`e.preventDefault()` (6认同)
  • 不要使用`return false`,它在jQuery处理程序,html属性处理程序和常规`addEventListener`处理程序中有不同的含义.为清楚起见,根据需要调用`preventDefault()`和`stopPropagation()`.你很少需要调用`stopPropagation()` (3认同)