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:

中工作正常

http://jsfiddle.net/us0dm62c/

但是,如果您的意图是只让“#navigation”div 切换一次(因此它会消失并且不能再次显示),那么您的代码完全可以做到这一点而无需修改,因为你可以在这个 fiddle:

中看到

http://jsfiddle.net/gktnhhm5/

正如@trevor 所说,它应该是 on('click'),而不是 one('click')。

如果您看到它发出乒乓声,我猜您在代码的其他地方分配了另一个点击侦听器,它正在做同样的事情。

因为您使用的是.one(*)。使用 like $(".btn1").click(function(){...} 将适用于多次点击。