为什么鼠标滚轮事件的目标属性与其他(click、mousedown、touchstart)事件的目标属性不同?

2024-04-15

鼠标滚轮事件target属性提供在操作鼠标滚轮(或支持手势的触摸板)时鼠标当前悬停在其上的 DOM 元素。

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

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

不用说,它使代码比其他方式更复杂。

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

我无法确定这是一个功能还是一个错误。


Here's 一个片段 https://github.com/jquery/jquery/blob/97fa97f0c1cd6a14a0d7f5e2599b30c502bd3e8c/src/event.js#L491jQuery 代码中他们规范了这种行为,因为这是一个错误:

// Target should not be a text node (#504, Safari)
if ( event.target.nodeType === 3 ) {
    event.target = event.target.parentNode;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么鼠标滚轮事件的目标属性与其他(click、mousedown、touchstart)事件的目标属性不同? 的相关文章

随机推荐