Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Javascript在滚动时执行?_Javascript_Scroll_Infinite Scroll - Fatal编程技术网

如何使Javascript在滚动时执行?

如何使Javascript在滚动时执行?,javascript,scroll,infinite-scroll,Javascript,Scroll,Infinite Scroll,我正在创建一个Tampermonkey脚本,允许您从Reddit的首页隐藏子Reddit。这一切都很好,但只是在第一页。问题是,当您开始滚动时,Reddit会加载新项目(无限滚动),而代码对添加的新项目不起作用 我试图添加一个事件侦听器,但这不起作用。滚动时,这些项目仍会显示 window.addEventListener("scroll", function(){ document.querySelector('a[href*="politics"]').parentElement.pare

我正在创建一个Tampermonkey脚本,允许您从Reddit的首页隐藏子Reddit。这一切都很好,但只是在第一页。问题是,当您开始滚动时,Reddit会加载新项目(无限滚动),而代码对添加的新项目不起作用

我试图添加一个事件侦听器,但这不起作用。滚动时,这些项目仍会显示

window.addEventListener("scroll", function(){

document.querySelector('a[href*="politics"]').parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.style.display='none';

});

当前代码将选择一个与该选择器匹配的元素,导航到一个祖先元素,并将其显示设置为
none
。该元素保留在文档中,其他元素不受影响;当未来的
滚动
事件发生时,将选择相同的元素,并隐藏相同的祖先(但其
显示
,因此它不做任何事情)

使用
querySelectorAll
迭代所有匹配元素,并使用
将它们从DOM中删除。remove()

window.addEventListener("scroll", function(){
  for (const a of document.querySelectorAll('a[href*="politics"]')) {
    a.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.remove();
  }
});