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

Ste*_* Lu 7 html javascript html5 dom javascript-events

mousewheel事件的target属性提供了当鼠标轮(或具有手势功能的触摸板)正在操作时鼠标当前悬停的DOM元素.

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

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

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

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

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

pim*_*vdb 5

这是jQuery代码的片段,它们将这种行为规范化,因为它是一个错误:

// Target should not be a text node (#504, Safari)
if ( event.target.nodeType === 3 ) {
    event.target = event.target.parentNode;
}
Run Code Online (Sandbox Code Playgroud)