【发布时间】:2021-11-10 07:51:51
【问题描述】:
我正在使用simplescroll bar (SSB),它会在页面加载时在我的滚动内容周围添加包装器。我需要附加一个事件监听器,它可以在滚动上工作。
没有SSB简单
document.querySelector(".element").parentNode.addEventListener('scroll', handler);
确实有效。但是现在不行了,因为右边的.parentNode还不存在,后面会被SSB后台添加(不知道什么时候,不知道怎么做,也没法控制它)。
如何将滚动处理程序附加到动态创建的(不是由我创建的)元素?
通过点击事件,我确实使用了这样的功能
function addPostponedEventListener(selector, eventName, handler)
{
document.addEventListener(
eventName,
e =>
{
const el = e.target;
if (el.closest(selector))
{
handler();
}
}
)
}
addPostponedEventListener('.element', 'scroll', handler);
但它只适用于冒泡,并且冒泡似乎对滚动事件被禁用,所以它不起作用。
【问题讨论】:
标签: javascript events scroll