我在标准 jqGrid 配置的各种事件中都有所需的通用代码。
我使用 $.extend($.jgrid.defaults, { });
为以下内容设置一些代码:
loadError()
beforeRequest()
loadComplete()
gridComplete()
现在,当我定义网格实例时,我可能希望在任何这些事件中执行更多代码。
我最初的解决方案是使用全局变量,例如:loadCompleteEx()
,如果定义了它们,则在默认方法调用结束时调用它们。如果页面上只有一个网格,那就太好了,但我正在尝试实现一种解决方案,无论页面上有多少个网格,该解决方案都可以工作。
是否有某种方法可以 Hook 并添加一个方法来在触发这些事件时执行?我正在使用 jqGrid 4.1.2 和 jQuery 1.6。
预先感谢您的帮助!
最佳答案
您可以.bind()
将您自己的函数绑定(bind)到事件,以便您的函数随事件一起执行。您可以使用它来将不同的事件绑定(bind)到每个网格,或者一次将一个函数绑定(bind)到每个网格。
.bind()
还允许绑定(bind)到标准 JavaScript 事件、自定义事件,甚至是稍后使用 .trigger()
调用的未定义字符串。
它需要附加在选择器之后,选择器可以根据您的情况选择特定网格或多个网格。
$('#Your-Grid-Selector').bind('eventToBind', functiontoBind() {
alert('Triggered eventToBind');
});
编辑:此问题可能与 this SO Question 重复。 ,它有一个很好的解决方案,您可以使用它来解决这个问题。
关于jquery-ui - 如何添加 jqGrid 中的默认事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258804/