我试图在执行排序算法时使用jQuery BlockUI Plugin来阻止jQuery对话框。这种排序的功能是这样的:BlockUI花费太长的时间来阻止jQuery对话框
doSort : function() {
$("#sort_dlg").block();
// sort... takes a few seconds
$("#sort_dlg").unblock();
}
它的工作,种。直到排序完成后,对话才会被阻止。 (排序全部在本地完成,没有AJAX调用或任何东西。)如何在排序前阻止它?
我试过block()
呼叫移动到对话框中的OK按钮方法:
$(function() {
$("#sort_dlg").dialog({
autoOpen: false,
bgiframe: true,
modal: true,
buttons: {
"Cancel": function() { $(this).dialog("close"); },
"OK": function() {
$("#sort_dlg").block();
doSort();
}
}
});
});
但是这并没有帮助。 (我接受使用其他技术阻止UI的建议。)
这可能是因为blockUI使用动画淡入模式弹出窗口,并且这些动画异步运行时,您的排序代码开始运行。由于您的排序代码在您的页面上同步运行,浏览器将被阻止,直到排序代码完成。 你的答案是使用一个回调函数,我现在正在研究... – Pandincus 2009-10-14 04:12:51