0

私のサイトにはいくつかのスクリプトがあります。最初のスクリプトは、csvからjsonへのスクリプトです。次は「結果」スクリプトです。これにより、jsonから情報が取得され、チェックボックスの順序付けられていないリストが作成され、これらの結果のテーブルも作成されます。順序付けされていないリストを使用すると、テーブルをフィルタリングして特定の結果を表示できます。

これはうまく機能しますが、現在、Footable(http://themergency.com/footable/)をテーブルに組み込んで、テーブルに多くの列があるために応答するようにしています。

HTMLヘッドでのスクリプトの順序は次のとおりです。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/assets/js/library/04-csvtojson.js"></script>/
<script type="text/javascript" src="/assets/js/results.js"></script>
<script src="/assets/js/footable-0.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  $('table').footable();
});
</script>

これで、jsはその順序で起動すると思います。しかし、Footable部分はそうではありません。これは、このテーブルを作成するresults.jsが原因である可能性があります。

これがresults.jsへのパスティです: http://pastie.org/6197248

フィルタリング可能な要素を作成し、Footableに必要な属性を追加して、テーブルを作成します。

ページを表示すると、すべてが再び機能しますが、Footable部分が機能していないようで、テーブルの一部を非表示にします。

奇妙な部分は、Firebugを開いて、上記の関数の「table」を「#data」に変更すると、結果が表示されるテーブルのIDで、Footableコードが起動され、要素が非表示になることです。

これを強制的に発生させる方法はありますか?
これはresults.jsと一緒に配置する必要がありますか?

前もって感謝します!

4

1 に答える 1

2

非同期のAJAXを使用しているため、footableテーブルが作成される前にプラグインを適用しようとしています。

関数内で、または関数内でプラグインrenderTableの直後にプラグインを呼び出す必要がありますparseResults

編集:さらに、setTimeout内のテーブルhtmlの作成を管理するために呼び出されていますrenderTable。プラグインは同じ範囲内で初期化する必要がありますsetTimout

于 2013-02-16T19:21:57.473 に答える