单击除指定类之外的任何位置

qad*_*nza 3 javascript jquery

如果除了.m1wrapdiv 之外的任何地方有点击,我需要显示警报.

为什么这不起作用?即使我点击也会出现警报.m1wrap

$(document).on("click", function(e) {
    if (e.target.class !== "m1wrap") {
        alert ("323");
    };
})
Run Code Online (Sandbox Code Playgroud)

Ale*_* T. 5

e.target没有属性class(它返回undefined),你可以使用属性e.target.className(注意它返回class属性中的所有类),但是jQuery有方法.hasClass.

你也可以使用classList.contains方法e.target.classList.contains('m1wrap')

$(document).on('click', function (e) {
  if (!$(e.target).hasClass('m1wrap')) {
    console.log('not m1wrap');
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="m1wrap">m1wrap</div>
<p>test</p>
Run Code Online (Sandbox Code Playgroud)