2011-03-11 3 views
5

호출하고 기본 대단한안 BlockUI 내가 화려한 BlockUI를 사용하고

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI); 

사용하여 설정 한 - 나는 페이지에 자동 완성 요소를 추가하는 경우를 제외을 한 다음 blockUI 사용자가 타이핑을 시작하자마자 시작됩니다. 블록 UI를 시작하기 위해 아약스가 호출하는 것을 명시 적으로 설정하는 대신 특정 아약스 함수에 대해 blockUI를 사용하지 않도록 설정할 수있는 방법을 생각해 볼 수 있습니까?

답변

6

은 당신이 뭔가를 할 수 있습니다 :

var dontBlock = false; 

$(document).ajaxStart(function(){ 
    if(!dontBlock) 
     $.blockUI(); 
}).ajaxStop($.unblockUI); 

// And in the ajax methods (to be excluded), set dontBlock accordingly 

$('#autocomplete').keydown(function(){ 
    dontBlock = true; 
    $.ajax({ 
     // url, data etc. 
     success: function(){ dontBlock = false; } 
    }); 
}); 
23

jQuery를에서 아약스 호출은 다른 설정 Ajax 요청을 구성하는 키/값 쌍의 세트를 받아들입니다. 모든 설정은 선택 사항입니다.

지금 여기에서 우리는 다음과 같습니다

설정 이름을 : 글로벌, 유형 : 부울, 기본 : 사실

설명 : 글로바를 트리거할지 여부 l이 요청에 대한 Ajax 이벤트 핸들러. 기본값은 true입니다. ajaxStart 또는 ajaxStop와 같은 전역 처리기가 트리거되지 않도록하려면 false로 설정하십시오. 이것은 다양한 Ajax 이벤트를 제어하는 ​​데 사용할 수 있습니다.

예 : 예 위

$.ajax({ 
     global: false, 
     type: "POST", 
     url: 'ajax/test.html', 
     success: function(data) { 
      $('.result').html(data); 
      alert('Load was performed.'); 
     } 
}); 

이 blockUI 같은 어떤 아약스 시작 또는 아약스 정지 이벤트의 실행을 중지합니다.

+0

굉장! 오늘 배웠습니다 ... :) –