我正在用info_dialog显示服务器错误消息。当info_dialog列表关闭时,我想触发一个函数。我尝试过用鼠标单击来完成这个操作,但是它只在对话框已经关闭之后才会触发。
第一个mouseclick:对话框关闭,但未触发警报
第二,以及接下来的每一个鼠标:警报被触发。
我在用赛勒迪特。有人知道当对话框关闭时,我如何触发函数吗?谢谢你的帮助。
errorCell: function(serverresponse, status) {
$.jgrid.info_dialog(
$.jgrid.errors.errcap,
serverresponse.responseText,
$.jgrid.edit.bClose,
{ zIndex: 1500}
);
$(document).click(function() {
alert( "Handler for .click() called." );
});
}发布于 2014-02-05 21:29:26
$.jgrid.info_dialog方法支持在关闭时调用的onClose回调。回调的返回值通知是否允许关闭。只要尝试一下代码
$.jgrid.info_dialog(
$.jgrid.errors.errcap,
serverresponse.responseText,
$.jgrid.edit.bClose,
{
zIndex: 1500,
onClose: function () {
alert("inside onClose");
return true; // allow closing
}
}
);更新了:要想在单击对话框的外部的鼠标时捕捉到$.jgrid.info_dialog的关闭,必须执行更复杂的操作。
var orgViewModal = $.jgrid.viewModal;
$.extend($.jgrid,{
viewModal: function (selector, options) {
if (options.onHide) {
options.orgOnHide = options.onHide;
options.onHide = function (h) {
alert("inside onHide");
return options.orgOnHide.call(this, h);
}
}
return orgViewModal.call (this, selector, options);
}
});
$.jgrid.info_dialog($.jgrid.errors.errcap, "Test message",$.jgrid.edit.bClose, {
zIndex: 1500,
onClose: function () {
alert("inside onClose");
return true; // allow closing
}
});在代码的第一部分中,我使用了$.jgrid.viewModal方法的“子类”(就像我在答案、这一个和其他一些方法中使用的那样)。因此,我将所有调用转发到原始$.jgrid.viewModal方法,只有一个例外。如果使用$.jgrid.viewModal回调参数调用onHide方法,我将转到原始的$.jgrid.viewModal方法,修改了回调的实现。它允许捕捉对话框的关闭。
更新了2:演示显示了该方法。
或者(而不是子类),您可以只修改线
onHide: function(h) {
h.w.hide().remove();
if(h.o) { h.o.remove(); }
},info_dialog in jquery.jqGrid.src.js.如果定义了选项,只需插入mopt.onClose的附加调用即可。可能应该包括附加的回调onClosed,因为onClose可以拒绝关闭,但是在onHide中调用的新回调不能做到这一点。
https://stackoverflow.com/questions/21588242
复制相似问题