我在JavaScript中使用slideToggle时遇到了一些问题。 我有一个名为.reveal的类,当我点击它时,我想要出现类Window。但是,我只希望slideToggle在我点击父类.reveal时工作,而不是当我在类中单击时.Window ..如果我在.Window类fx中有一个按钮。当我点击它时,滑动按钮会启动:
<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无效?
答案 0 :(得分:3)
使用您当前的html结构,就是它应该如何发生,点击.Window
会冒出.reveal
点击事件,因为它是父项,所以你需要stopPropagation()
1}}通过订阅.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();
});
});
<强> Fiddle 强>