2016-08-07 6 views
1

テーブルのJSON data-urlがDOMで最後にロードされるのはなぜですか?このような単純なHTMLテーブルを参照する

<table id="table1" 
     data-toggle="table" 
     data-url="data1.json" 
     data-pagination="true" 
     data-sort-order="desc"> 

私はJavaScriptを先行すると、テーブルからJSONデータの呼び出しを変更することはできますか?

jqueryの条件付き書式設定を実装しようとしていますが、table要素の下にスクリプトを置いても、DOMが最後にJSONデータを読み込みます私の条件付き書式が適用されない理由です(具体的に必要ならば、私はコードを投稿します)。

コメントリクエストのためにコード全体を追加しました。 HTML::

<table id="table1" 
     data-toggle="table" 
     data-url="data1.json" 
     data-pagination="true" 
     data-sort-order="desc"> 
    <thead> 
    <tr> 
     <th data-sortable="true" data-field="name" >Name</th> 
     <th data-sortable="true" data-field="W">Width</th> 
     <th data-sortable="true" data-field="H">Height</th> 
     <th data-sortable="true" data-field="D">Depth</th> 
    </tr> 
    </thead> 
</table> 

data1.json:

[{ 
    "name": "First Value", 
    "W": 1, 
    "H": 10, 
    "D": 100 
},{ 
"name": "First Value", 
"W": 1, 
"H": 10, 
"D": 100 
},{ 
"name": "First Value", 
"W": 0, 
"H": 10, 
"D": 100 
},... 

Javascriptを/ jQueryの:

ここ

は完全なコードです

+0

jsonフェッチ部分を投稿できますか?それはアヤックス経由ですか? –

+0

一部のJavaScriptコードで表の内容がロードされています。これはネイティブのブラウザ機能ではありません。 – Pointy

+0

@ ShintuJosephこんにちは、これはプロジェクトルートのdata1.jsonファイルです。アヤックスは関係なく、かなり標準的です。 – clusterBuddy

答えて

1

問題は、データを非同期に読み込み、スクリプトの順序を変更して競合状態がさらに発生することです。これを解決する最善の方法は、データがロードされたときにフックを入れることです。これを行うには、手動でjsonをajax経由で呼び出してから、テーブルをロードしてロード時にコールバックするかの2つの方法があります。 2番目の選択肢は、あなたの最善の選択肢は、ブートストラップテーブル(onLoadSuccess)によって生成されたイベントを使用することです。

$('#table1').on('load-success.bs.table', function (e, arg1, arg2, ...) { 
    // your jquery modifications go here 
}); 
+0

こんにちは、これは動作していないし、いくつかの奇妙な理由でthis.text()が関数ではないというエラー – clusterBuddy

+1

これをjqueryでラップしようとしましたか?すなわち$(this).text() – MorningDew

+1

私と私の太い指: – clusterBuddy

関連する問題