我有一個簡單的手風琴菜單,我今天使用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