Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么jquery滑动切换代码不起作用?_Jquery_Slidetoggle - Fatal编程技术网

为什么jquery滑动切换代码不起作用?

为什么jquery滑动切换代码不起作用?,jquery,slidetoggle,Jquery,Slidetoggle,我正在尝试更改展开/折叠按钮的按钮文本。基本上,用户单击“折叠”,我执行滑动切换,当滑动切换完成时,我将按钮文本更改为“展开”,反之亦然 下面的代码工作得很好,但是如果您快速单击展开/折叠按钮,它会放松思维,在已经展开时显示“展开”,或者在已经折叠时显示“折叠” 任何提示都将不胜感激 谢谢 功能切换框(按钮、框){ 如果($(框).is(“:hidden”)){ $(框)。滑动切换(“慢”,函数(){ $(按钮).html(“折叠”); }); } 否则{ $(框)。滑动切换(“慢”,函数(){

我正在尝试更改展开/折叠按钮的按钮文本。基本上,用户单击“折叠”,我执行滑动切换,当滑动切换完成时,我将按钮文本更改为“展开”,反之亦然

下面的代码工作得很好,但是如果您快速单击展开/折叠按钮,它会放松思维,在已经展开时显示“展开”,或者在已经折叠时显示“折叠”

任何提示都将不胜感激

谢谢

功能切换框(按钮、框){ 如果($(框).is(“:hidden”)){ $(框)。滑动切换(“慢”,函数(){ $(按钮).html(“折叠”); }); } 否则{ $(框)。滑动切换(“慢”,函数(){ $(按钮).html(“展开”); }); }
}您也可以尝试使用

:not(:animated)

在您的情况下,在设置文本时,在动画完成后进行检查会更安全,如下所示:

function toggleBox( button, box ){ 
  $(box).slideToggle("slow", function(){ 
    $(button).html($(this).is(":hidden") ? "Expand" : "Collapse"); 
  }); 
}

当前,您正在检查它何时开始,但请记住,在它完成隐藏之前,它不是隐藏的,所以在
幻灯片完成之前,它仍然是可见的(谢谢大家)。但是尼克,你的解决方案非常有效!比我的优雅多了。谢谢