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

时间:2013-01-01 10:46:10

标签: javascript html html5 dom javascript-events

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

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

即使我直接在文本上执行操作,也不会发生总是产生非文本节点的其他事件。

毋庸置疑,它使代码更加复杂。

这有什么理由吗?我想避免检查父节点,但幸运的是,这种情况的好处是我只需要检查target节点的父节点。

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

1 个答案:

答案 0 :(得分:5)

这里是jQuery代码的a snippet,他们将这种行为规范化,因为它是一个错误:

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