1

我有一个包含搜索条件的手风琴页面。一旦有人单击搜索按钮,条件就会关闭(我模拟了对手风琴标题的单击)。这很好用。

问题是当用户提供无效输入时,我的 AJAX 调用返回并且我尝试在手风琴完成关闭之前再次显示搜索条件(再次模拟点击手风琴标题)。这当然无法打开搜索条件。

一个简单的例子是双击手风琴标题。如果在此双击期间手风琴处于过渡状态,则不会发生任何事情。

在我的情况下如何避免这种情况?注意:Chrome/FF 中的问题似乎比 IE 中的问题更大,因为 IE 不会为手风琴打开/折叠设置动画。

#section1 代表手风琴标题的代码中的基本思想:

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

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

谢谢,迈克

4

2 回答 2

2

呼吁stop手风琴的孩子们:

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

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

于 2013-06-17T16:23:40.180 回答
1

async: false在您的 Ajax 调用中使用参数。这将使 Ajax 调用在第二次单击之前完成执行。

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

或者您可以在success函数中执行第二次单击:

$.ajax({
    success: function (data) {
        $("#section1").click();
    },
   ...
});
于 2013-06-17T16:21:55.690 回答