为了账号安全,请及时绑定邮箱和手机立即绑定

获取触发事件的元素(节点)

获取触发事件的元素(节点)

蝴蝶刀刀 2022-01-01 20:41:23
是否可以找到正在侦听触发当前函数的事件的元素?在下面的代码,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));


查看完整回答
反对 回复 2022-01-01
  • 1 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信