针对典型的向服务器发起AJAX请求,我将ajaxStart和ajaxStop事件绑定到打开和关闭模态jQueryUI对话框上。然而,我有另一种用例,其中有一个或多个div(通常是5个部分),其中包含从数据库检索的显示数据行的相当大的表格。当切换CSS display属性的一个section时(如下所示),我注意到了明显的延迟。
<span id="SECTION_1_collapse">[+/-]</span><br />
<div id="SECTION_1">
<table>
<!-- Typically 100 cols x 250+ rows -->
</table>
</div>
<span id="SECTION_2_collapse">[+/-]</span><br />
<div id="SECTION_2">
<table>
<!-- Typically 100 cols x 250+ rows -->
</table>
</div>
...
...
...
有没有可能在使用.toggle()方法时显示一个模态jQueryUI对话框? 在这种情况下,id =“SECTION_ _collapse” 的span元素用于折叠id =“SECTION_ ”的div元素。
提前感谢。
编辑:
是的。 这是可能的。 答案在.toggle()处理程序中。 单击事件仍然有一些延迟,但总体上死时间减少了,最后在执行期间得到了一些反馈。 缓存一些jQuery对象也有所帮助。
以下是相关部分,没有所有的管道代码,对话框声明等。
$('#SECTION_1_collapse').click(function(){
$('#wait_dialog').dialog("open");
$('#SECTION_1').toggle('slow', function(){
$('#wait_dialog').dialog("close");
});
});
.toggle()
的执行时间内,而是发生在 AJAX 调用的开始和结束时。你可以在ajaxStop
上触发切换,或者你可以使用$.ajax()
并在适当的回调中触发切换。 - Peter Ajtai