我如何 select 一个 class 而不是它的内部元素?

How do I select a class but not its inside element?

说我有

<div id="mydiv">
  <div class="myclass">
       <span class="otherclass"></span>
       and many other classes...
  </div>
</div>

我想在 .mydiv 上捕获点击事件,但不在 .myclass 中。

我尝试了 .mydiv:not(.myclass) 但它似乎不起作用。我认为这是因为我可能正在单击其他类,所以 :not(.myclass) 不起作用。我怎样才能得到我想得到的区域?谢谢!

使 #mydiv 可点击,随心所欲,并停止从 .myclass 传播事件,这样事件就不会从 myclass 冒泡到 mydiv

     $('#mydiv').click(function(){
        // do anything
     })

    // stop event propagation
     $('.myclass').click(function(e){
        e.stopPropagation();
        })

您可以单击 mydiv id 并在该函数中编写代码,在 .myclass 单击事件中您只需编写 return false 即可停止函数的进一步执行。

$('#mydiv').click(function(){
    // stuff your code here
});

//Use `return false` instead of `e.stopPropagation();`
$('.myclass').click(function(e){
  return false;
})

e.stopPropagation() is dangerous please read Documentation

调用 .off() 将删除事件处理程序

    $("#mydiv").on('click', function () {
        alert("You clicked mydiv");
    });

    $(".myclass").off('click', function () {
    });
           or like this

   $(".myclass").off();

JS FIDDLE