当我使用 slideDown 时,我的框只会出现,并且在我第一次单击链接时不会 slideDown,但是每次后续单击时,它都会按预期工作:
问问题
2431 次
4 回答
3
box.removeClass("hide");
必须在slideDown
完成演示之后:http: //jsfiddle.net/3Gc6Q/9/:
$(".link").click(function(e) {
e.preventDefault();
var box = $("#test");
if (box.hasClass("hide")) {
box.slideDown(function(){box.removeClass("hide");});
}
else {
box.slideUp(function() {
box.addClass("hide");
});
}
});
于 2012-04-10T13:24:40.580 回答
0
尝试使用slideToggle()
$(".link").click(function(e) {
e.preventDefault();
var box = $("#test");
box.slideToggle('slow');
});
这将大大简化您所拥有的内容。它还可以让你删除一些在“测试”中不必要的 CSS div
。
这是一个工作示例:http: //jsfiddle.net/zYAcB/1/
于 2012-04-10T13:24:13.693 回答
0
只需删除
box.removeClass("hide");
调用slideDown
将使 div 可见。目前,当您删除“隐藏”类时,它将显示(因为它被该类的 css 隐藏),slideDown
然后调用什么也不做。如果您不删除该类,它将按您的意愿显示。
或者,您可以在动画完成后删除该类:
box.slideDown(function() {
box.removeClass("hide");
});
于 2012-04-10T13:24:22.123 回答
0
固定:http: //jsfiddle.net/3Gc6Q/8/
于 2012-04-10T13:24:23.247 回答