jQuery slideToggle不断重复

时间:2015-05-29 16:40:37

标签: javascript jquery html slidetoggle

我有一个简单的jQuery代码,如下所示:

$( "#resp-navigation" ).one("click", function() {
    $( "#navigation" ).slideToggle(500);
});

我的HTML看起来像这样:

<div id="resp-navigation"> ... </div>
<nav id="navigation"> ... </nav>

我的问题是,当我点击#resp-navigation div时,#navigation会继续切换。有谁知道为什么?

感谢。

3 个答案:

答案 0 :(得分:3)

如果您打算使用&#39;#navigation&#39;每次有人点击&#39;#resp-navigation&#39; div,然后:

这:$( "#resp-navigation" ).one

应该是:$( "#resp-navigation" ).on

然后它在这个小提琴中工作正常:

http://jsfiddle.net/us0dm62c/

但是,如果您打算只使用&#39;#navigation&#39; div切换一次(所以它消失了,不能再显示),那么你的代码完全没有修改,正如你在这个小提琴中看到的那样:

http://jsfiddle.net/gktnhhm5/

答案 1 :(得分:0)

正如@trevor所说,它应该是(&#39;点击&#39;),而不是一个(&#39;点击&#39;)。

如果你看到ping ponging我的猜测是你在代码中的其他地方分配了另一个点击监听器,它正在做同样的事情。

答案 2 :(得分:0)

因为您使用的是.one(*)。使用类似<div class="willhover class1">Class 1</div> <div class="willhover class2">Class 2</div>的方法可以进行多次点击。