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

标签 javascript html dom dom-events

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

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

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

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

这是有原因的吗?我想避免必须检查父节点,但值得庆幸的是,这种情况的好处是我只需要检查 target 节点的父节点。

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

最佳答案

这是 a snippet在 jQuery 代码中,他们将此行为规范化,因为这是一个错误:

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

关于javascript - 为什么 mousewheel 事件的 target 属性与其他(click、mousedown、touchstart)事件的不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14109763/

相关文章:

javascript - jQuery 查找的 IE7 问题?

javascript - REST API分页如何保证数据一致性

Javascript 游戏循环

JavaScript:如何通过选择器获取父元素?

java - java DOM 解析器异常

PHP/JS - 即时创建缩略图或存储为文件

javascript - 如何使用 Javascript/jQuery 确定跨度或相对定位元素的大小和位置?

asp.net - 为什么我的 CSS 宽度在 aspx 页面中不起作用?

html - 为什么左侧 DIV 未覆盖 100% 高度

javascript - 为什么定义的时候说 'TypeError: Cannot read property ' appendChild' of undefined'?