2011-03-07 3 views
3

this 플러그인을 사용하고 있습니다. jquery UI 차단기에 여러 블록이 있습니까?

그러나 내가이 블록의 여러 인스턴스를 가질 수 떨어져 있습니까 전역 변수

$.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(); 

옵션없이 간단하게 유지하지만 실제 코드에는 메시지와 다른 옵션이있다.

이제 문제는 성공이 완료되면 아약스 스톱이 호출되어 모든 블록을 해제합니다. 나는 아약스 스타트에서 시작된 것만을 유효한 것으로 선택하지 않기를 바란다.

다른 인스턴스가 필요합니다.

답변

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(); 
}); 

그리고 당신은 차단하고있는 다른 이벤트에 대한 유사한 무언가를 (단지 동적 div 추가 내부 id 속성과 remove()에 대한 호출을 변경

을.