1

20秒ごとに更新するフォーラムトピックのリストがあり、新しい投稿があるかどうかを確認しています。ある場合は、そのトピックを取り上げて、このようにリストの一番上に移動します

$('#topicID').insertBefore("#topics li:first"); 

これはかなりうまく機能しますが、残念ながら、リストアイテムがすでに一番上にある場合は、リストアイテムは表示されなくなります。before()についても同じことが言えます。これはバグまたは意図された動作と見なされますか?

要素をそれ自体の前に挿入することはあまり意味がなく、これは次のように挿入の前に.remove()-ステートメントを追加することで簡単に解決できることを理解しています。

$('#topicID').remove().insertBefore("#topics li:first"); 

それでも、jQueryは、要素を単に削除するよりも、元の場所に要素を挿入する方が理にかなっていると思います。これについてどう思いますか?

いずれにせよ、この投稿は、HTMLに何かが欠けている理由を理解するのに役立つかもしれません。

これが私が何を意味するかを示すコードです:http: //jsfiddle.net/93UqQ/2/

4

1 に答える 1

3

.prependTo代わりに使用してみてください:

$("#topicID").prependTo("#topics");​​​​​​ 

これにより、要素がDOMから削除されずに移動し、既に正しい場所にある場合は何も変更されません。

http://jsfiddle.net/mblase75/93UqQ/5/

于 2012-08-27T16:24:02.080 に答える