Jquery agaxStart가 트리거되지 않음
이 코드
$("#loading").ajaxStart(function() {
alert("start");
$(this).show();
});
내가 보기에
<div style="text-align:center;"><img id="loading" src="../images/common/loading.gif" alt="" /></div>
다음은 전체 Ajax 요청입니다.
$.ajax({
type: "POST",
url: "http://localhost/WebServices/Service.asmx/GetResults",
data: jsonText,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) {
var results = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;
PopulateTree(results);
},
error: function(xhr, status, error) {
var msg = JSON.parse(xhr.responseText);
alert(msg.Message);
}
});
$("#loading").ajaxStart(function() {
alert("start");
$(this).show();
});
$("#loading").ajaxStop(function() {
alert("stop");
$(this).hide();
$("#st-tree-container").show();
});
GIF가 회전하는 것으로 표시되더라도 경고 "시작"을 실행하지 않습니다.예상대로 AjaxStop이 트리거됩니다.왜 그런지 아십니까?
Ajax 요청이 이미 진행되고 있을 때(호출되었을 때가 지나기 전까지) 에 대한 핸들러가 등록되지 않기 때문에 트리거되지 않습니다.는 이후에도 등록되지만 요청이 완료되기 전에 다시 실행되도록 연결됩니다.
이 문제를 해결하려면 첫 번째 통화 전에 이 문제를 해결하십시오.
$("#loading").ajaxStart(function() {
$(this).show();
}).ajaxStop(function() {
$(this).hide();
$("#st-tree-container").show();
});
업데이트: jQuery 1.9부터는 AJAX 이벤트를 문서에만 첨부해야 합니다. http://jquery.com/upgrade-guide/1.9/ #http://filename-http://filename-http://-
$(document).ajaxStart(function() {
$("#loading").show();
});
$(document).ajaxStop(function() {
$("#loading").hide();
$("#st-tree-container").show();
});
jQuery 1.9부터는 AJAX 이벤트를 문서에만 첨부해야 합니다.
마이그레이션 가이드를 참조하십시오.http://jquery.com/upgrade-guide/1.9/ #http://filename-http://filename-http://-
jQuery 1.9 기준으로 글로벌 AJAX 이벤트(ajaxStart, agaxStop, agaxSend, agaxComplete, agaxError 및 agaxSuccess)는 문서 요소에서만 트리거됩니다.문서에서 AJAX 이벤트를 청취하도록 프로그램을 변경합니다.예를 들어 코드가 현재 다음과 같이 표시됩니다.
$("#status").ajaxStart(function() {
$(this).text("Ajax started");
});
다음으로 변경:
$(document).ajaxStart(function() {
$("#status").text("Ajax started");
});
이것이 당신의 문제를 해결할 수 있을지는 모르겠지만, 일반적으로 저는 사용합니다.debug.info('your message')
대신 Firebug 콘솔과 함께 사용할 수 있습니다.alert()
경고는 사용자가 스크립트를 해제할 때까지 스크립트 처리를 중단하는 반면 debug.info 은 상당히 방해가 되지 않습니다.
여기에서 debug.info 구현을 다운로드할 수 있습니다.
언급URL : https://stackoverflow.com/questions/2275342/jquery-ajaxstart-doesnt-get-triggered
'programing' 카테고리의 다른 글
참조일 때 프로그래밍 방식으로 색상 값 가져오기(테마) (0) | 2023.08.27 |
---|---|
페이지 로드 시 Twitter 부트스트랩 회전 장치가 자동으로 미끄러지지 않도록 방지 (0) | 2023.08.27 |
2열 div 레이아웃: 고정 너비의 오른쪽 열, 왼쪽 유체 (0) | 2023.08.27 |
Git 저장소에 존재했던 모든 파일 나열 (0) | 2023.08.27 |
execCommand()는 이제 더 이상 사용되지 않습니다. 대안은 무엇입니까? (0) | 2023.08.27 |