1

我在 JavaScript 中的 slideToggle 遇到了一些问题。我有一个名为 .reveal 的类,当我单击它时,我希望类 Window 出现。但是,我只希望 slideToggle 在我单击父类 .reveal 时工作,而不是当我在类 .Window 内单击时工作。如果我的 .Window 类 fx 中有一个按钮。当我单击它时,slidetoggle 会启动:

<div class="reveal">
Reveal
   <div class="Window">
       <input type="button" id="Create" value="CLICK" />
   </div>
</div>

$(function () {
   $('.reveal').click(function() {
       $(this).children('.Window').slideToggle();
   });
});

如何使 slideToggle 仅在单击父类时起作用?

4

1 回答 1

2

使用您当前的 html 结构,这就是它应该发生的方式,单击.Window将冒泡到.reveals click 事件,因为它是父级,因此您需要stopPropagation()通过订阅单击事件.Window或单独检查意图目标在现有的点击事件中,从而避免另一个事件注册表。而是试试这个:

$(function () {
   $('.reveal').click(function(e) {
       if(e.target == this) //check if target is .reveal only if so trigger else ignore.
         $(this).children('.Window').slideToggle();
   });
});

小提琴

于 2013-09-30T23:49:53.077 回答