2013-02-28 92 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