jQuery slideToggle 不断重复
jQuery slideToggle keeps repeating
我有一个简单的 jQuery 代码,如下所示:
$( "#resp-navigation" ).one("click", function() {
$( "#navigation" ).slideToggle(500);
});
我的 HTML 看起来像这样:
<div id="resp-navigation"> ... </div>
<nav id="navigation"> ... </nav>
我的问题是,当我单击#resp-navigation div 时,#navigation 一直在切换。有人知道为什么吗?
谢谢。
如果您打算在每次有人点击“#resp-navigation”div 时切换“#navigation”div,那么:
这个:$( "#resp-navigation" ).one
应该是:$( "#resp-navigation" ).on
然后它在 fiddle:
中工作正常
但是,如果您的意图是只让“#navigation”div 切换一次(因此它会消失并且不能再次显示),那么您的代码完全可以做到这一点而无需修改,因为你可以在这个 fiddle:
中看到
正如@trevor 所说,它应该是 on('click'),而不是 one('click')。
如果您看到它发出乒乓声,我猜您在代码的其他地方分配了另一个点击侦听器,它正在做同样的事情。
因为您使用的是.one(*)。使用 like $(".btn1").click(function(){...}
将适用于多次点击。
我有一个简单的 jQuery 代码,如下所示:
$( "#resp-navigation" ).one("click", function() {
$( "#navigation" ).slideToggle(500);
});
我的 HTML 看起来像这样:
<div id="resp-navigation"> ... </div>
<nav id="navigation"> ... </nav>
我的问题是,当我单击#resp-navigation div 时,#navigation 一直在切换。有人知道为什么吗?
谢谢。
如果您打算在每次有人点击“#resp-navigation”div 时切换“#navigation”div,那么:
这个:$( "#resp-navigation" ).one
应该是:$( "#resp-navigation" ).on
然后它在 fiddle:
中工作正常但是,如果您的意图是只让“#navigation”div 切换一次(因此它会消失并且不能再次显示),那么您的代码完全可以做到这一点而无需修改,因为你可以在这个 fiddle:
中看到正如@trevor 所说,它应该是 on('click'),而不是 one('click')。
如果您看到它发出乒乓声,我猜您在代码的其他地方分配了另一个点击侦听器,它正在做同样的事情。
因为您使用的是.one(*)。使用 like $(".btn1").click(function(){...}
将适用于多次点击。