2017-09-13 10 views
-1

id#some-listで順序付けられていないリストがあります。バックボーン実装では、特定のデータが返されると、リスト項目がレンダリングされ、リストに追加され、リストが表示されます。ulリストの内容を変更するjQuery

JQueryを使用して、いつ変更が完了したかを検出したいと考えています。 $(#some-list).ready()$(#some-list).load()を使用しましたが、動作していないようです。

このような変更をキャプチャする方法は何ですか?誰かここにライトを投げてもらえますか?

答えて

1

あなたはコードを投稿していないので、どこに失敗したのか分かりにくいです。
しかし、一般的には、ajaxコールバックでカスタムイベントをトリガーすることです(コンテンツを取得してリストに追加するにはajaxを使用します)。例えば

loadData(){ 
    // invoke the ajax request 
    var def = $.get(...); 
    def.then(function(result){ 
    // $(#ul) append(result) ... 
    // now trigger the custom event 
    $(document).trigger('listRendred'); 
    }); 
} 

今、あなたはそれを聞くことができます別の場所またはスクリプト上:

$(document).on('listRendred', function(e){ // do what ever... }) 
+0

これは非常に便利ですを使用してイベントをリッスン!好奇心のために、カスタムイベントをトリガするときのベストプラクティスはありますか? –

+0

@BoYuanはい - この回答に示されているように、jQuery DOMイベントを使用しないことをお勧めします。 Backboneの組み込みイベントAPIを使用して、バックボーンイベントをトリガーします。 [その他の回答](https://stackoverflow.com/a/46207471/2333214)に示されているとおりです。 –

1

あなたはそのイベントをリッスンしようとすることができBackboneJSを使用しているので。

使用できるイベントを調べるには、次のコードを試してください(私の*プレースホルダを先に置き換えてください)。ブラウザのコンソールの中を見てください。

*backboneobject*.on("all", function(e) { 
    console.log(e) 
}); 

その後ちょうど

*backboneobject*.on("*yourevent*", function() { 
    doStuff(); 
}); 
+0

ありがとうございました。申し訳ありませんが、私はBackboneに慣れていません。クライアント側からのバックボーンオブジェクトは何ですか?背骨?バックボーン? –

+0

@ Sag1vと同様に、コードなしで良い答えを出すことは難しいと述べました。おそらく、読み込み機能によって取得されたモデルのコレクションがあります。したがって、コードは 'nameofcollection.on(" change "、function(){doStuff();});' – sbz

関連する問題