【问题标题】:On load jquery not working在加载 jquery 时不起作用
【发布时间】:2017-04-13 11:55:22
【问题描述】:

您好,我有 jqgrid,它在调整大小时会触发一个函数,以便它根据窗口大小调整大小。这个功能很好,但是当 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).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');

而且效果很好。我在这里做错了什么。

【问题讨论】:

标签: javascript jquery jqgrid


【解决方案1】:

您只能在创建网格之后调用 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/

【讨论】:

    【解决方案2】:

    我一直使用“DOMContentLoaded”事件,它就像一个魅力。

    请尝试:

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

    【讨论】:

    • 这是从其他文件调用的,函数是另一个文件,所以我不能使用它
    • @shv22 该评论没有多大意义 tbh
    猜你喜欢
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    相关资源
    最近更新 更多