负载 jquery 不工作

On load jquery not working

您好,我有 jqgrid,它在调整大小时触发一个函数,以便它根据 window 大小调整大小。这个功能很好,但我需要相同的功能才能在 jqgrid 加载时工作 所以我这样调用函数

$(window).bind("load", function() {
     $('#' + grid_id).setGridWidth(width, true); //Back to original width
    $('#' + grid_id).setGridWidth($('#' + div_id).width(), true); //Resized to new width as per window
    });

但它不起作用。

当 window 像这样调整大小时会调用相同的函数

$(window).bind('resize', function () {
            $('#' + grid_id).setGridWidth(width, true); //Back to original width
            $('#' + grid_id).setGridWidth($('#' + div_id).width(), true); //Resized to new width as per window
        }).trigger('resize');

而且效果很好。我这是怎么了。

我一直使用 "DOMContentLoaded" 活动,它非常有效。

请尝试:

 element.addEventListener("DOMContentLoaded", function(event) {
    //Element loaded
  });

您只能在 创建网格后 调用 jqGrid 的 setGridWidth 方法。

我想你需要做的可能是添加选项 autowidth: true

如果您想实现自己的自定义调整大小,则可以在 jqGridAfterLoadComplete 事件中进行。代码可能与以下内容有关:

var $grid = $("#grid"),
    resizeGrid = function () {
        var newWidth = $(this).closest(".ui-jqgrid").parent().width();
        $(this).jqGrid("setGridWidth", newWidth, true);
    };

$(window).on("resize", function() {
    resizeGrid.call($grid);
});

$grid.on("jqGridAfterLoadComplete", resizeGrid)
.jqGrid({
    // all jqGrid options
});

https://jsfiddle.net/OlegKi/ejpn9/153/