选择后代,除了一个孩子

时间:2013-10-25 21:28:57

标签: javascript jquery html

假设我有这个HTML:

<div class="par">
  <div class="s1">
    <a href="#" class="s1">link</link>
  </div>
  <div class="s8">
    <a href="#" class="s1">link</link>
    <div class="s1">
      <a href="#" class="s1">link</link>
    </div>
  </div>
  <div class="ds44">
    <a href="#" class="s1">link</link>
  </div>
  <span class="t">This is text</span>
  <div class="thisOne">
    <a href="#" class="s1">link</link>
  </div>
</div>

现在我想调用这个函数:

function aFn(){
  alert('Omid');
}

点击除<div class="par">之外的<div class="thisOne">及其子级中的所有元素。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

将点击处理程序分配给.par,然后将其分配给.thisOne,以防止点击冒泡到.par

$('.par').click(aFn);

$('.thisOne').click(function(e) {
    e.stopPropagation();
});

答案 1 :(得分:1)

click上处理.par并检查e.target

例如,

$(".par").on("click", function(e) {
    if ($(e.target).closest(".thisOne").length) {
        return;
    }

    …
});

Okay, that worked.