1

我有一个论坛主题列表,我每 20 秒更新一次,检查是否有新帖子。如果有,我会将该主题移至列表顶部,如下所示

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

这确实工作得很好,不幸的是,如果它们已经在顶部,列表项就会消失。before() 也是如此。这被认为是错误还是预期行为?

我意识到在自身之前插入一个元素没有多大意义,并且可以通过在插入之前添加一个 .remove()-Statement 轻松解决这个问题,如下所示:

$('#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 回答