在页面加载时,从数据库中选择了 5 个项目。当用户向下滚动时,会加载另外 5 个帖子,等等。
为了在按"new"排序时防止重复帖子,我将页面加载时间放在一个隐藏的输入中以在 JavaScript 中使用:
<input id="loadTime" type="hidden" value="<?php echo time(); ?>">
然后在滚动时获取更多帖子时,我只选择那个时间之前的新帖子,以防止重复帖子。
WHERE s.date < :loadTime
但是,我的问题是按热门或热门排序时,因为它们不使用相同的逻辑。
是否可以检测页面上的两个元素是否具有相同的 ID?因为当一个重复的帖子附加到页面时,它的 ID 将与页面上已有的 ID 相同。某种 $(window).scroll()
有一个功能可以在之后删除重复的 ID,这样用户就不会看到重复的帖子吗?
最佳答案
我能够解决它:
在附加新帖子后的成功函数中,我遍历页面上的所有 ID(取自此 answer,然后删除具有该 ID 的最后一个元素。
$('[id]').each(function(){
var ids = $('[id="'+this.id+'"]');
if (ids.length>1 && ids[0]==this){
$("#"+this.id).last().remove();
}
});
关于javascript - 检测页面上的两个元素是否具有相同的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936003/