这是我的小提琴link

我想在单击父框时执行一些操作,但它的一个子类为.notClickableCol除外。我使用了:not(),但目前无法正常工作。

当此文本(“不可点击”)不带<span>标记时,它可以工作。

有任何想法吗?

HTML / CSS / Jquery:



jQuery(".row").on('click', ':not(.notClickableCol)', function() {
  alert('success');
});

.row {
  margin-bottom:15px;
  border-bottom:1px solid #ccc;
}
.row {
  width:150px;
  height:150px;
  display:inline-block;
  vertical-align:top;
  text-align:center;
  color:#fff;
  font-family:Arial;
  font-weight:bold;
  margin-right:10px;
  background:#ff6777;
  margin-left:50px;
}
.clickableCol {
  display:block;
  cursor:pointer;
  margin-top:45px;
  margin-bottom:20px;
  color:#000;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
  <div class="col">
    <span class="clickableCol">Clickable</span>
  </div>
  <div class="col">
    <span class="notClickableCol">Not Clickable</span>
  </div>
</div>
<div class="row">
  <div class="col">
    <span class="clickableCol">Clickable</span>
  </div>
  <div class="col">
    <span class="notClickableCol">Not Clickable</span>
  </div>
</div>
<div class="row">
  <div class="col">
    <span class="clickableCol">Clickable</span>
  </div>
  <div class="col">
    <span class="notClickableCol">Not Clickable</span>
  </div>
</div>

最佳答案

您的选择器范围太广。我会使用.col而不是.row

jQuery(".col :not(.notClickableCol)").on("click", function () {
    alert('success');
});


这是a working fiddle



您也可以只是clickableCol并将.not()放在一起:

jQuery(".clickableCol").on("click", function() {
  alert('success');
});


Here's another working fiddle.

10-04 22:52