我打算使用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 2013-05-07 04:44:03