2017-04-13 14 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

あなたはデベロッパーコンソールの出力を投稿することができます参照してください:コードは、次の程度だろうか? http: https://developer.mozilla.org/en-US/docs/Tools/Web_Console/Opening_the_Web_Console https://developers.google.com/web/tools/chrome-devtools/console/ はこれを試してみてください。 //stackoverflow.com/a/9828919/665159 – Asmodiel

+0

window.loadを使用しているので、なぜ$(document).ready(function(){'。 –

+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 –

関連する問題