无限滚动运行后无法调用函数

时间:2015-04-06 23:40:30

标签: javascript jquery

我正在使用Infinite Scroll插件(用于Wordpress)在用户滚动到底部时将新帖子加载到页面上。问题是这已经加载了重复的帖子,因为排序变化非常快(由于流行度),帖子最终在不同的页面上。

当插件抓取下一页时,有时最初在FIRST页面上的产品已被排序到SECOND页面。所以我最终得到了重复。

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

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



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. */
      
  });
});
&#13;
&#13;
&#13;

我一直在&#34;未定义的功能&#34;与.each有关,看起来它与范围有关,但我不确定发生了什么。

是否有更简单的方法来触发删除重复项的功能?我至少走在正确的轨道上了吗?

感谢您提供的任何见解!

1 个答案:

答案 0 :(得分:0)

似乎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