我有一个简单的手风琴菜单,我今天使用jQuery slideDown()
和slideUp()
方法放在一起。 示例代码:重复点击后jQuery 1.6.2 slideUp()和slideDown()高度问题
<h1>the header</h1>
<div class='thechild'>
the content
</div>
$(function(){
$('h1').click(function(){
var next = $(this).next();
if (next.is(':visible'))
{
next.stop().slideUp();
}
else
{
next.stop().slideDown();
}
return false;
});
});
这个伟大的工程,但是如果你点击<h1>
的一次,然后在动画完成之前再次,你可以打破slideUp()
或slideDown()
事件之一。 看来发生的是,第二次点击时,它将slideUp()
零高度罚款,但如果你滑下来,它将只滑动到它的最后一个最大高度 - 即高度.thechild
是在最后一次中断点击动画。
我需要的是一次点击上下滑动或滑动.thechild
视情况而定,第二次点击停止动画(如果正在运行)并向上滑动.thechild
。随后的第三次点击应该滑动到.thechild
到它的全高,而不是在点击#2中断时的高度。希望一切都有意义:)
我确信我曾经有过这个问题,并以某种方式解决它,但不记得(或谷歌)我想出的解决方案。这只是这些幻灯片方法的一个限制,而且是解决方法,可以在我的animate()
调用中进行更多的高度调整吗?
我试着玩各种布尔你可以通过.stop()
,但无济于事。必须有一些简单的东西我想念,任何人都可以启发我吗?
的jsfiddle这里:http://jsfiddle.net/cY6kX/
重建,在<h1>
双击一堆倍,看会发生什么,然后单击几次,看看它是如何打破这样的,直到你重新加载页面。
任何指针十分赞赏
几秒钟早hehe –
都正确和两个+1。 – jammypeach
我在停止位置尝试(true),(true,false)和(false,false)。如果没有尝试(真实,真实)以及甚至在阅读.stop()的文档之后,我的大脑必定会感到疲倦。感谢您指出明显的:) – jammypeach