free-JqGrid:resizeStart 事件不起作用?

free-JqGrid: resizeStart event not works?

我尝试从旧版本的 jqGrid (4.6.0) 迁移到新版本 (4.9.1)。

我注意到 resizeStart 事件未被触发,但 resizeStop 工作正常。可以吗?

我不确定,但看起来错误是在调用 "feedback" 函数时

$bDiv = $(self.bDiv)

feedback.call(getGridComponent(COMPONENT_NAMES.BODY_TABLE, $bDiv), "resizeStart", x, i);

feedback = function () {
        // short form of $.jgrid.feedback to save usage this.p as the first parameter
        var args = $.makeArray(arguments);
        args.unshift("");
        args.unshift("");

        args.unshift(this.p); //this.p is undefined! this is dom table

        return jgrid.feedback.apply(this, args);
    };

感谢您报告错误!行

feedback.call(getGridComponent(COMPONENT_NAMES.BODY_TABLE, $bDiv), "resizeStart", x, i);

应该固定为

feedback.call(getGridComponent(COMPONENT_NAMES.BODY_TABLE, $bDiv)[0], "resizeStart", x, i);

我将 the fix 发布到 GitHub。您应该重新加载最新的免费 jqGrid 资源。

要使用 resizeStartresizeStop 回调以及 jqGridResizeStartjqGridResizeStop 事件,可以使用以下代码:

$("#grid").jqGrid({
    ...
    resizeStart: function (e, iCol) {
        ...
    },
    resizeStop: function (newWidth, iCol) {
        ...
    }
}).bind("jqGridResizeStart", function (e, eOrg, iCol) {
    ...
}).bind("jqGridResizeStop", function (e, newWidth, iCol) {
    ...
});

因此可以使用回调或事件。一个网格只能注册一个回调,但可以多次绑定 jQuery 事件(jqGridResizeStartjqGridResizeStop 等)。甚至可以在 before jqGrid 被创建之前进行绑定。空 <table> 应该已经存在了。