天天看點

關于 jQuery blockUI 的一點小問題

在做開發時,測試人員提出了一個問題,郁悶了一天後終于有了答案和解決辦法:

就是使用了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這樣寫了。

個人認為能解決問題的代碼就是好代碼。

關于 jQuery blockUI 的一點小問題