2013-02-28 125 views
1

我有一個包含搜索條件的手風琴的頁面。一旦一個人點擊搜索按鈕,標準關閉(我模擬手風琴標題點擊)。這很好。jQuery手風琴 - 快速顯示/隱藏

問題是當用戶提供無效輸入時,我的AJAX調用返回,並且我試圖在手風琴完成關閉之前再次顯示搜索條件(再次模擬點擊手風琴標題)。這當然不能打開搜索標準。

一個簡單的例子就是雙擊手風琴標題。如果在雙擊期間手風琴處於轉換狀態,則沒有任何反應。

如何避免這種情況在我的情況?注:在IE瀏覽器中,Chrome/FF似乎更像是一個問題,因爲IE並未對手風琴的開啓/關閉進行動畫處理。從那裏#SECTION1代表手風琴標題代碼

基本思想:

$("#section1").click(); 
//some very fast AJAX. 
$("#section1").click(); 

JS小提琴:http://jsfiddle.net/mikeyfreake/gGaJn/2/

謝謝, 邁克

回答

2

呼叫stop在手風琴的孩子:

$("#accordion").children().stop(true, true); 

http://jsfiddle.net/gGaJn/9/

+0

謝謝@Brandon,非常感謝。這個解決方案正是我所期待的。 – 2013-06-17 16:31:13

1

在你的Ajax調用使用async: false參數。這將讓Ajax調用在第二次點擊之前完成執行。

http://api.jquery.com/jQuery.ajax/

或者你可以執行在success函數的第二個點擊:

$.ajax({ 
    success: function (data) { 
     $("#section1").click(); 
    }, 
    ... 
}); 
+0

感謝@搶。這是一個有效的解決方案,但我必須選擇由Brandon提供的答案,因爲它保持了我更喜歡的異步功能。 – 2013-06-17 16:32:48