首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jqgrid对话框函数onClose

jqgrid对话框函数onClose
EN

Stack Overflow用户
提问于 2014-02-05 20:51:59
回答 1查看 2.5K关注 0票数 1

我正在用info_dialog显示服务器错误消息。当info_dialog列表关闭时,我想触发一个函数。我尝试过用鼠标单击来完成这个操作,但是它只在对话框已经关闭之后才会触发。

第一个mouseclick:对话框关闭,但未触发警报

第二,以及接下来的每一个鼠标:警报被触发。

我在用赛勒迪特。有人知道当对话框关闭时,我如何触发函数吗?谢谢你的帮助。

代码语言:javascript
复制
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." );
    });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-05 21:29:26

$.jgrid.info_dialog方法支持在关闭时调用的onClose回调。回调的返回值通知是否允许关闭。只要尝试一下代码

代码语言:javascript
复制
$.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的关闭,必须执行更复杂的操作。

代码语言:javascript
复制
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:演示显示了该方法。

或者(而不是子类),您可以只修改线

代码语言:javascript
复制
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中调用的新回调不能做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21588242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档