在做開發時,測試人員提出了一個問題,郁悶了一天後終于有了答案和解決辦法:
就是使用了bockUI 的 $.blockUI() 方法後,在使用 $.unblockUI() ,頁面在不報任何錯誤,并且全部執行正常的情況下,滑鼠的樣式一直是忙碌等待的狀态(漏鬥,或轉圈)的樣子。
出現的BUG的測試時這樣的,點完按鈕後,滑鼠不動,(點一下就行,滑鼠千萬不能再動第二下),然後滑鼠的狀态不能自動回複,一直是等待的狀态。(雖然已經 unblock 完畢)
這裡就不上截圖了,滑鼠就是一個小漏鬥(IE6,或設定了滑鼠的等待狀态樣式的情況下,win7 預設是轉圈的)
這裡是官方給出的demo:(貌似demo 也是這個樣子的,就有這樣的一個BUG)
http://www.malsup.com/jquery/block/#demos
我的解決辦法:
官方給出了一個api 是
$.unblockUI({
onUnblock:function(){}
});
個人認為出現滑鼠一直轉圈的原因是是因為,滑鼠聚焦,引用等沒有釋放,
(純屬瞎猜,還望有了解的大哥給予合理的解釋)
這裡的做法是:
$.unblockUI({
onUnblock:function(){
$("body").append($("<iframe id=\'tester11\' height=\'0\',width=\'0\' style=\'display:none;\'></iframe>"));
$("#tester11").remove();
}});
這樣就可以使得滑鼠漏鬥、轉圈等待的情況消失,完美解決問題。
當然如果這個問題是blockUI的問題或BUG的話大家可以修改源代碼,在裡邊加上這麼一段,就不用每次unblockUI這樣寫了。
個人認為能解決問題的代碼就是好代碼。
