运行Infinite Scroll后调用函数时出现问题

Trouble calling function after Infinite Scroll runs

本文关键字:问题 函数 调用 Infinite Scroll 运行      更新时间:2023-09-26

我使用Wordpress的无限滚动插件,当用户滚动到底部时,将新帖子加载到页面上。问题是,这一直在加载重复的帖子,因为排序变化非常快(由于受欢迎),帖子最终出现在不同的页面上。

当插件抓取下一页时,有时最初位于第一页的产品会被排序到第二页。所以我最终得到了重复。

我计划等待脚本加载下一页的内容,然后循环浏览所有的帖子标题并找到重复的内容。然后我会删除每个帖子的第二个实例。

我注意到Infinite Scroll在设置中有一个窗口,标签为"加载内容后运行/回调",所以我想我可以在该字段中输入一个要调用的函数。

removeDuplicates();

然后我在页脚中输入了这样的内容:

function removeDuplicates(){
  var titleList = [];
  $('.title').each(function(i, obj) {
      /* The titles are in <h1> tags, I cycle through them, 
     if it's the first time seeing the title I add it to titleList. 
     If it's already in the array I hide the parent. */
      
  });
});

我不断得到与.each相关的"未定义函数",它似乎与范围有关,但我不确定发生了什么。

是否有更简单的方法触发函数以删除重复项?我至少在正确的轨道上吗?

感谢您提供的任何见解!

似乎没有加载jquery。即使您使用的选择器不返回任何元素,它仍然应该具有.each()方法。

尝试使用vanillaJS而不是jquery。

var titleNodeList = document.querySelectorAll('.title'); // get elements
var titleElArray = Array.prototype.slice(titleNodeList); // convert to array
titleElArray.forEach(function(el){...}); // iterate