单击两个div但jquery .not()不起作用

时间:2015-06-11 14:36:09

标签: jquery

我有两个" Div",类 .bb &的 .ll

我想点击 .bb 而不是 .ll 来显示提醒('确定');

HTML:

<div class="bb" style="width:500px;height:500px; background:#f00;">
    <div class="ll" style="width:200px;height:200px; background:#0f0;">
    </div>
</div>

jquery的:

$(".bb").not('.ll').click(function() {
    alert("ok");
});

我的代码链接: http://jsfiddle.net/juornp65/

我尝试使用:not(),但它不起作用。

3 个答案:

答案 0 :(得分:1)

使用 e.target 获取当前的目标元素,并使用is()检查.ll元素

   $(".bb").click(function (e) {

        if (!$(e.target).is('.ll')) {
            alert("ok");
        }
    });

<强> DEMO

注意:$(".bb").not('.ll')它会过滤.li而不是孩子

答案 1 :(得分:0)

一种方法是这样做:

$("div").click(function(e) {
    e.stopPropagation();
    if($(this).hasClass('bb')) {
        alert("ok");
    }
});

编辑:如果有多个类名,最好使用@ AmmarCSE的answer hasClass()

答案 2 :(得分:0)

使用event.target,检查它是否包含hasClass()

的课程

$(".bb").click(function(e) {
  if (!$(e.target).hasClass('ll')) {
    alert("ok");

  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="bb" style="width:500px;height:500px; background:#f00;">
  <div class="ll" style="width:200px;height:200px; background:#0f0;">
  </div>
</div>