javascript – 为什么mousewheel事件的target属性与其他(click,mousedown,touchstart)事件的target属性不同?

前端之家收集整理的这篇文章主要介绍了javascript – 为什么mousewheel事件的target属性与其他(click,mousedown,touchstart)事件的target属性不同?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
mousewheel事件的target属性提供当鼠标轮(或具有手势功能的触摸板)正在操作时鼠标当前悬停的DOM元素.

当我这样做时(至少在Safari 6中,我稍后会测试其他浏览器)我会将文本节点本身作为目标.

即使我直接在文本上执行操作,对于总是产生非文本节点的其他事件也不会发生这种情况.

不用说它使代码比其他方面更复杂.

是否有一个原因?我想避免检查父节点,但幸运的是,这种情况的好处是我只需要检查目标节点的父节点.

我无法确定这是一个功能还是一个bug.

解决方法

这里是 a snippet的jQuery代码,它们将这种行为规范化,因为它是一个bug:
// Target should not be a text node (#504,Safari)
if ( event.target.nodeType === 3 ) {
    event.target = event.target.parentNode;
}
原文链接:https://www.f2er.com/js/158163.html

猜你在找的JavaScript相关文章