我必须同时为多个打开/关闭模态请求创建一个函数。
例如:当我调用showAjaxLoading(true)时,它会显示模态,而showAjaxLoading(false)则会调用模态。
问题:当我第一次提出显示模态的请求时,另一个快速请求将关闭它。我希望能够在数组中保留所有请求,并仅在最后一个请求结束时处理模式。
SimpleModal:对象simplemodal是唯一的。创建模态时,它返回对象本身。但是当你已经打开一个模态时,它会返回false。网址:http://www.ericmmartin.com/projects/simplemodal/
var showAjaxLoading = function (show) {
var ajaxModal;
if (show) {
var aModal = $("#ajaxLoading").modal({ overlayId: 'ajaxloading-overlay', containerId: 'ajaxloading-container', closeClass: 'ajaxloading-close', close: false, escClose: false });
if (aModal !== false) {
ajaxModal = aModal;
};
} else {
if (ajaxModal !== undefined && $.isFunction(ajaxModal.close)) {
ajaxModal.close();
};
};
};
解决这个问题的最佳解决方案是什么?
答案 0 :(得分:2)
var modalDialog = {
_requestsInProcess: 0,
showAjaxLoading : function()
{
if ( this._requestsInProcess == 0 )
{
// open overlay here
}
this._requestsInProcess++;
},
hideAjaxLoading : function()
{
this._requestsInProcess--;
if ( this._requestsInProcess == 0 )
{
// hide overlay here
}
}
}
尝试这样的事情/现在每次你的请求完成时你都可以调用modalDialog.showAjaxLoading()和每次你的请求完成时调用modalDialog.hideAjaxLoading()。