jquery-ui를 사용하여 대화식 취소 단추 대화 상자를 구현하려고합니다. 사용자가 취소를 클릭하면 팝업 확인 대화 상자가 표시됩니다. 사용자가 예를 클릭하면 응답 상태에 따라 응답합니다. 다음은 코드를 구현 한 방법입니다.jquery UI 대화 상자가 예기치 않게 닫혔습니다.
function refreshPage() {
window.location.reload(true);
}
$(function() {
setTimeout(refreshPage,30000);
var cancelJob = function(e) {
e.preventDefault();
$('.hiddenCancelPopup').dialog({
modal: true,
buttons: {
"Yes": function() {
var bookingJobNo = $('.cancelButton').attr("rel");
var channel = $('.cancelButton').attr("channel");
var deviceId = $('.cancelButton').attr("deviceId");
if(readCookie("mbtx_session_id") == null) {
$(".invalidId").dialog({});
return;
}
jQuery.get('/rest/v2/booking/cancel/'+ bookingJobNo + "?channel=" + channel + "&deviceId=" + deviceId, function(result) {
if(result.status == 501) {
$(".hiddenCancelledPopup").dialog({
modal: true,
buttons: {
"OK": function() {
alert("OK");
window.location.reload(true);
//$(this).dialog("close");
}
}
});
} else {
$(".hiddenFailedCancelPopup").dialog({
modal: true,
buttons: {
"OK": function() {
$(this).dialog("close");
}
}
});
}
});
},
"No": function() {
$(this).dialog("close");
}
}
});
}
$(".cancelButton").on('click',cancelJob);
$("body").on({
ajaxStart: function(cancelJob) {
$(this).addClass("loading");
},
ajaxStop: function(cancelJob) {
$(this).removeClass("loading");
refreshPage();
}
});
이 구현의 문제는 $(".hiddenCancelledPopup").dialog
를 표시 할 때, 대화 상자는 사용자가 OK
버튼을 클릭도 전에 예기치 않게 종료 것입니다. 잠시 사라지기 전에 나타났습니다.
setTimeout(refreshPage,30000);
(30 초마다 새로 고침을 의미 함) 문제가 발생할 수 있음을 알았지 만 대화 상자가 30 초 간격보다 훨씬 짧게 닫혔습니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 감사.
'refreshPage'에 경고를 추가하여 확인하십시오. – Barmar