2011-03-07 11 views
3

我正在使用this插件。jquery ui blocker中的多個塊?

但是它似乎使用全局變量

$.blockUI(); 
$.unblockUI(); 

有沒有去,我可以有該程序的不同實例。

$(document).ajaxStart(function (e) 
{ 
      $.blockUI(); //setup with a loading msg. 
    }); 

$(document).ajaxStop(function (e) 
     {  
      $.unblockUI(); 

     }) 


var ajax = // ajax setup stuff 


// 1.5 way of doing it 
ajax .success(function (response) 
      { 
       var valid = checkIfValid(response); // check if valid 
       if(valid) 
       { 
         $.blockUI(); // setup with a save message 
       } 

      }); 

所以這就是我所擁有的。我把

$.blockUI(); 

保持簡單,沒有選擇,但在我的真實代碼我有消息和其他選項設置。

所以,現在的問題是,一旦成功完成,ajax停止被調用並放開一切。我只希望在ajax開始的那個被清除,而不是有效的那個。

所以我需要不同的實例。

回答

5

您可以通過在div上調用block來實現您試圖執行的操作,並且您只需從DOM中刪除該div即可。例如:

$(document).ajaxStart(function (e) { 
    /* Create a <div> that will contain the blocking elements: */ 
    $("<div id='ajax-block' style='position:fixed;width:100%;height:100%' />") 
     .appendTo("body").block() 
}); 

$(document).ajaxStop(function (e) { 
    /* Remove the page block specific to the ajax request: */  
    $("#ajax-block").remove(); 
}); 

而且做您阻止其他事件類似(只是改變裏面的動態附加divid屬性和調用remove()