我正在尝试更改展开/折叠按钮的按钮文本。基本上,用户单击“折叠”并执行slideToggle,当slideToggle完成后,我将按钮文本更改为“Expand”,反之亦然。
以下代码效果很好但是如果你快速点击展开/折叠按钮,它会失去理智并在已经展开时显示“展开”,或者当它已经折叠时显示“折叠”。
任何提示都表示赞赏。
谢谢!
function toggleBox(button,box){ if($(box).is(“:hidden”)){ $(box).slideToggle(“slow”,function(){ $(按钮)的.html( “折叠”); }); } 其他{ $(box).slideToggle(“slow”,function(){ $(按钮)的.html( “扩展”); }); } }
答案 0 :(得分:2)
在您的情况下,在设置文本时进行检查会更安全,动画结束后会更安全,如下所示:
function toggleBox( button, box ){
$(box).slideToggle("slow", function(){
$(button).html($(this).is(":hidden") ? "Expand" : "Collapse");
});
}
目前您正在检查它何时启动,但请记住它不是:hidden
,直到完成隐藏,所以直到slideUp
完成,它仍然是{{1 }):)
答案 1 :(得分:0)
您也可以尝试使用
:not(:animated)