在加载jquery不工作

嗨我有jqgrid在resize时触发一个函数,以便根据窗口大小resize。 这个函数很好,但是当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'); 

它工作正常。 我在这里做错了什么。

只有创建网格才能调用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/

我总是使用“DOMContentLoaded”事件,它的工作就像一个魅力。

请试试:

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