2017-04-13 90 views
0

您好我有jqgrid調整大小觸發一個函數,以便它根據窗口大小調整大小。這個功能很好,但我需要的是同樣的功能,當負載的jqGrid所以 我打電話這樣在加載jQuery不工作

$(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'); 

和正常工作的調用同一個函數。我在這裏做什麼錯了。

+0

您可以發佈一個開發者控制檯的輸出? https://developer.mozilla.org/en-US/docs/Tools/Web_Console/Opening_the_Web_Console https://developers.google.com/web/tools/chrome-devtools/console/ 試試這個:HTTP: //stackoverflow.com/a/9828919/665159 – Asmodiel

+0

當你使用window.load,爲什麼不使用'$(文件)。就緒(函數(){'。 –

+0

你可能還喜歡使用網格的事件之一例如'loadComplete' http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events –

回答

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/

+0

謝謝主席先生.... – shv22

+0

@ shv22:歡迎您! – Oleg

0

我用百達「DOMContentLoaded」事件和它的工作就像一個魅力。

請嘗試:

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

這是從一些所謂的其他文件和功能是另一個文件,所以我不能用這個 – shv22

+0

@ shv22該意見沒有多大意義TBH –