jQuery单击函数异常

Fra*_*ank 4 jquery

我正在显示一个容器<div class="expand">- 当点击时 - 展开section下面的容器:

HTML:

<div class="expand">
    <div class="container1">
         <div class="container2">
             <a class="view">View</a>
             <a class="download">Download</a>
         </div>
    </div>
</div>

<section class="hidden">
...
</section>
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('.expand').click(function () {

   var $this = $(this);
   $this.next().show();

});
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,还有一个"下载"按钮作为子元素<div class="expand">.此下载按钮应该是此容器中唯一不会触发显示所述部分的元素.

所以我想做这样的事情:

$('.expand').not(".download").click(function () {
...
});
Run Code Online (Sandbox Code Playgroud)

要么

$('.expand').except(".download").click(function () {
...
});
Run Code Online (Sandbox Code Playgroud)

Mat*_*ati 5

您也可以使用event.stopPropagation():

$('.download').click(function(event) {
    event.stopPropagation();
}

$('.expand').click(function () {
    ...
});
Run Code Online (Sandbox Code Playgroud)

这将阻止事件在DOM中向父母移动,并触发他们的事件处理程序.