$('#user_button').toggle(function () {
$(".hello").addClass("active");
}, function () {
$(".hello").removeClass("active");
});
jQuery .toggle
回调函数用于向元素添加和删除类。现在根据jQuery .toggle
documentation,.toggle
最初用于在所选元素的可见性状态之间切换。
我做了一个jsfiddle演示:http://jsfiddle.net/taheri/nYdng/
在我的示例中,它似乎只在回调函数之间交替,并且 #user_button
本身的可见性未被切换。我在这里的文档中错过了什么?切换是否可以仅用于在功能之间交替?
谢谢!
答案 0 :(得分:4)
答案 1 :(得分:1)
从您提供的jquery文档链接:
注意:事件处理套件还有一个名为.toggle()的方法。 触发哪一个取决于传递的参数集。
因为您传递了两个函数作为参数,所以正在调用事件处理套件的toggle()
函数。
答案 2 :(得分:0)
在jQuery中(在检查1.6.2源代码之后),.toggle()
支持许多不同类型的参数。它支持的一件事是传递两个回调函数。如果这就是你传递的内容,它将在你第一次调用它时调用第一个函数,第二次调用它时它将调用第二个函数,它将每次都交替。 “
当您将函数传递给它时,除了调用函数之外,它不执行任何其他操作。如果你想隐藏和展示某些东西,你必须在你的功能中这样做。
你可以在这里看到它:http://jsfiddle.net/jfriend00/QGz5c/。
jQuery文档没有说明这一点。 .toggle()
应该只有一套文档描述了你可以传递的所有选项,但正如Šime所指出的,对于你可以传递的不同类型的参数,有两套完全不同的文档。< / p>
答案 3 :(得分:-1)
由于您正在切换#user_button
,因此$(".hello")
的可见性未被切换。那是
$('#user_button').toggle(function () {
$(this).hide();
$(".hello").addClass("active");
}, function () {
$(this).show();
$(".hello").removeClass("active");
});
然后会更改#user_button
的可见性。
答案 4 :(得分:-1)
要在类之间切换,使用jQuery的toggleClass()
方法。 jQuery中还有其他类似slideToggle()
的切换,它们只是animate
函数的快捷方式。
但是,根据您提供的链接,您无法为toggle()
方法提供两个回调函数。您应该只提供持续时间(可选),缓动(也可选)和回调(再次可选),或者您只需提供一个布尔值。
我检查了你的代码,它似乎工作得很好。但是,我认为这种用法可能不是最好的做法。我还在寻找什么是错的。