gpt4 book ai didi

javascript - JQGRID-JQMODAL : Disable close modal when click on overlay

转载 作者:行者123 更新时间:2023-11-29 16:15:45 24 4
gpt4 key购买 nike

我试图在单击编辑行时打开的编辑表单模态后面的叠加层时禁用单击时关闭,但我不知道该怎么做。我在尝试类似的东西:

editOptions: {
url: 'foo/edit.html',
mtype: 'PUT',

//some other options
closeAfterEdit: true,
reloadAfterSubmit: true,
onClose: function() {
alert('Hi ^_^');
}
}

但这只有在我点击 'X' 按钮时才会触发。如果我单击叠加层(超出模态),它会关闭模态并且该警报永远不会触发。我想要的是在我点击模式外或删除该叠加层时禁用该关闭功能。

谢谢。

最佳答案

这是个有趣的问题。 onClose 如果点击叠加层(如果点击模式对话框外),则不会调用回调,对话框将关闭。

这很有趣,但是 jqModal.js 已经有了可以完美实现您的要求的选项。它是 $.fn.jqmcloseoverlay 选项(参见 the line )。问题是 jqGrid 没有任何允许设置选项的公共(public)属性。如果你只是修改 jquery.jqGrid.src.js closeoverlay : truecloseoverlay : false (它对应于改变 closeoverlay:! 0jquery.jqGrid.min.js 中的 closeoverlay:!1) 然后你就会有你需要的行为。

问题是,如果不修改代码 jqGrid,我看不到任何简单的方法来实现您的要求。

更新:我再次分析了 jqModal.js 模块的代码,我找到了简单的方法无需更改 jqGrid 的源代码。分析困难,因为模块仅以最小化形式存在。所以很难阅读代码。

解决方案:您应该包含以下更改 jqModal.js 模块默认值的行:

$.jqm.params.closeoverlay = false;

描述:the lines jqModal.js 模块初始化 $.jqm

$.jqm = {
hash: {},
open: function (s,t) { ... },
close: function (s) { ... },
params: {}
};

所以在你包含 jquery.jqGrid.min.js 之后的任何地方你都有 $.jqm.params 作为空对象。可用于提供jqModal.js参数的默认值(不直接在$.jqm参数列表中指定)。所以你可以在 jquery.jqGrid.min.js (或 jquery.jqGrid.src.js) 以拒绝在单击叠加层时关闭 jqGrid 对话框。

关于javascript - JQGRID-JQMODAL : Disable close modal when click on overlay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16363732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com