Tôi đang cố gắng sử dụng jQuery BlockUI Plugin để chặn hộp thoại jQuery trong khi thực hiện thuật toán sắp xếp. Chức năng sắp xếp hoạt động như sau:BlockUI mất quá nhiều thời gian để chặn hộp thoại jQuery
doSort : function() {
$("#sort_dlg").block();
// sort... takes a few seconds
$("#sort_dlg").unblock();
}
Nó hoạt động, loại. Hộp thoại không bị chặn cho đến SAU KHI sắp xếp xong. (Các loại được thực hiện tất cả tại địa phương, không có cuộc gọi AJAX hoặc bất cứ điều gì.) Làm thế nào để có được nó để chặn trước khi sắp xếp?
tôi đã cố gắng di chuyển block()
cuộc gọi đến phương pháp nút OK của hộp thoại:
$(function() {
$("#sort_dlg").dialog({
autoOpen: false,
bgiframe: true,
modal: true,
buttons: {
"Cancel": function() { $(this).dialog("close"); },
"OK": function() {
$("#sort_dlg").block();
doSort();
}
}
});
});
Nhưng điều đó không giúp đỡ. (Tôi mở để gợi ý chặn giao diện người dùng bằng cách sử dụng một số kỹ thuật khác.)
Điều này có thể do blockUI sử dụng hoạt ảnh mờ dần trong cửa sổ bật lên phương thức và trong khi các hoạt ảnh này đang chạy không đồng bộ, mã sắp xếp của bạn bắt đầu chạy. Vì mã sắp xếp của bạn đang chạy đồng bộ trên trang của bạn, trình duyệt bị chặn cho đến khi mã sắp xếp hoàn tất. Câu trả lời của bạn là sử dụng chức năng gọi lại, mà tôi đang xem xét ngay bây giờ ... – Pandincus