2011-10-28 20 views
0

.hide()に何かをする前に、すべてのグリッドがレンダリングされるように、私はonRendered()イベントを実装する必要があります。私のgaolは.hide().show()ボタンをdivのグリッドに常駐させ、デフォルト状態を非表示にします。問題は、私のスクリプトが初期.hide()を実行する時点で、grid.jsスクリプトによってまだグリッドが完全に作成されていないことです。私はむしろ遅延ループをしません。多くの場合、コールバックがあります。onRenderedコールバック

すべてのヘルプは、これは、コールバックなしで動作するはず

おかげ パット

+0

可能な複製http://stackoverflow.com/questions/6224661/do-action-after-render-method-is-completed?answertab=active#tab-top – magiconair

答えて

2

をいただければ幸いです。 UIイベントに応じてグリッドを表示および非表示にするSlickGridアプリケーションがあります。グリッドはインスタンス化されるとすぐに存在し(new Slick.Grid)、.hide()および.show()メソッドで操作できます。

あなたはdisplay: nonedivタグを作成した場合、私は、グリッド列が正しく初期化しません(それが最初に隠されている)...しかし

を1つのキャッチを見つけました。これを回避するために、私はvisibility: hiddenでdivタグを作成し、.hide().show()メソッドを使用する前にこのスタイルを削除します。

私のコードは、おおよそ次のようになります。

<div id="mygrid" style="visibility: hidden"></div> 

    $grid = $("#mygrid") 

    grid = new Slick.Grid($grid, gridData, gridColumns, gridOptions); 

    // Hide grid by default, remembering to remove the visibility style 
    $grid.hide(); 
    $grid.css("visibility", "visible"); 

    // You can now show and hide the grid using normal jQuery methods 
    $grid.show(); 
    $grid.hide(); 

は、この情報がお役に立てば幸いです。

+0

ありがとう、それは助けになりました。 – cube

+0

ニースハック。それはとてもうまくいった。ありがとう! – DRaehal

関連する問題