0

<li>最初のアイテムが「.current」クラスでマークされた動的に注入されたアイテムがあります。リスト内の「.current」クラスのアイテムから次のアイテムをロードするDOMの「次へ」ボタンもあります。ただし、リストを動的に再作成すると、「次へ」ボタンはリスト内の他のすべての項目をロードします。リストを再作成すると、次のボタンはリストの 3 番目ごとの項目をロードします。リストは $.ajax によって設定され、json データ型です。再入力するたびに、次のようにすべてのリスト項目を削除します。

 $('#playlist').children().remove();

次のボタンは、以下のように次の項目を検索します。

 $('#playlist ul').find(".current").nextAll().first().children('a');

リストの「次の項目」をロードする際に矛盾が生じる理由についてのアイデア/提案はありますか? 明らかに、リストの再作成にも関係しています..リストを作成する $.ajax 呼び出しで "cache":false を設定しています...

この不一致が発生すると、以前にロードされたリストの (クラス ".current" の) アイテムから次のアイテムが開始されているように見えます。

フィドル: http://jsfiddle.net/unA6h/7/ (私が持っている完全なコードではありませんが、頭痛の種になっている部分です。リストは ajax 呼び出しから読み込まれます..json など..)

4

1 に答える 1

0

.nextAll()兄弟がないアンカータグを呼び出している.nextAll()ため、要素を取得しません。.parent()前に追加する必要があります.nextAll()。また、以下で小さな最適化を行いました。既に要素がある場合は、idを取得してidで選択しても意味がありません。

var next_item = $('#playlist ul').find('.current').parent().nextAll('li[role="normal_item"]').first().children('a');
setItemAsCurrent(next_item);

http://jsfiddle.net/unA6h/16/

于 2012-11-09T22:27:12.913 に答える