0

次のコードで tablesorter を正しく動作させるのに問題があります。

el = this.view.render().el;
$("#players").html(el);
$("#players-table").tablesorter({
  theme: 'blue'
}); 

テーブル ソーター スタイルは正常に適用されますが、列はソートされません。

ただし、3行目のfirebugにブレークポイントを設定し、テーブルがレンダリングされるまで待ってから続行すると、正常に機能します。

jQuery の .html() ドキュメントによると、.html() は同期呼び出しです。これは、ブレークポイントを設定して「待機」しても効果がないことを意味するのではないでしょうか? 足りないものはありますか?

4

2 に答える 2

1

問題は、フェッチされるコレクションが非同期であることを忘れていたことです。したがって、このコードは実際には正しいものでしたが、(ビューに渡される) コレクションが生成される前に実行されていました。

したがって、ブレークポイントが機能した理由は、テーブルを通過してテーブルソーターする前に、コレクションにデータを入力してレンダリングする時間を与えたためです。

于 2012-11-29T15:11:11.617 に答える
0

これ以上のコンテキストがなければ、これを修正するための私の最善のゲストは、の$el代わりにjquery要素を具体的にターゲットにすることですel

$("#players").html(this.view.render().el);
this.view.$el.tablesorter({
     theme: 'blue'
});
于 2012-11-29T06:20:24.440 に答える