1

假设我有这个 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">except<div class="thisOne">及其子项中的任何元素。我怎样才能做到这一点?

4

2 回答 2

2

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

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

$('.thisOne').click(function(e) {
    e.stopPropagation();
});
于 2013-10-25T21:30:51.563 回答
1

处理click.par检查e.target

例如,

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

    …
});

好的,这行得通。

于 2013-10-25T21:30:12.037 回答