我試圖在執行排序算法時使用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