是否可以找到正在侦听触发当前函数的事件的元素?在下面的代码,event.target在返回的最低子节点#xScrollPane和event.currentTarget和event.fromElement均无效。有没有其他方法可以在#xScrollPane不进行硬编码的情况下检索 DOM 引用?//convert vertical scroll wheel to horizontal scroll wheel:function scrollWheelX(event) { if (event.deltaY == 0) return event.target.scroll(event.target.scrollLeft + event.deltaY * 5, event.target.scrollTop) event.preventDefault()}document.getElementById('xScrollPane').addEventListener('wheel', scrollWheelX)
1 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
编辑:在事件处理程序内部,this对象指的是事件处理程序添加到的元素。
在this不引用所需元素或对象的情况下,您可以将元素绑定到this对象中。请注意,如果您需要使用removeEventListener,则必须将绑定函数传递给它,而不仅仅是原始函数。
即使在这种情况下没有必要绑定的示例:
function scrollWheelX(event) {
if(event.deltaY == 0) {
return;
}
this.scroll(this.scrollLeft + event.deltaY * 5, this.scrollTop);
event.preventDefault();
}
const scrollingElement = document.getElementById("scrollElement");
scrollingElement.addEventListener("wheel", scrollWheelX.bind(scrollingElement));
添加回答
举报
0/150
提交
取消