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