48

我目前沉浸在jQuery学习中心。我要从头到尾。

我刚刚读了这一段

同样重要的是要注意事件对象包含一个名为 的属性originalEvent,它是浏览器本身创建的事件对象。jQuery 用一些有用的方法和属性包装了这个原生事件对象,但在某些情况下,您需要通过event.originalEvent例如访问原始事件。这对于移动设备和平板电脑上的触摸事件特别有用。

最后一句,“这对于移动设备和平板电脑上的触摸事件特别有用。” ,真的激发了我的兴趣。但这与学习中心originalEvent到目前为止的内容一样多。

event.originalEvent有没有人知道专门针对触摸事件/移动设备进行更深入研究/练习的好资源?

4

3 回答 3

52

event.originalEvent通常只是本机event(也在此处描述)。

但是,如果浏览器兼容,并且事件是一个touch event,那么该 API 将通过event.originalEvent.

简短的回答是event.originalEvent并不总是相同的,这取决于触发处理程序的事件类型以及浏览器的环境。

于 2013-05-21T16:33:57.373 回答
16

我有一个案例,我需要使用event.originalEvent该问题试图通过拖放事件通过拖放来获取已放置文件的实例,这就是发生的事情

var files = event.dataTransfer.files; // Gives error: trying to get property of undefined

写作时

var files = event.originalEvent.dataTransfer.files; // Works fine

这意味着 jQuery 不会像本例中的 File API 那样使用它的所有 API 包装原生浏览器事件,因此要从 jQuery 事件中访问那些排除的属性和函数,我们必须使用event.originalEvent. 希望对某人有所帮助。

于 2015-07-23T10:11:16.250 回答
3

jQuery 知道标准事件并为不同的浏览器遵循它们。但是当没有标准事件时,jQuery 无法符合事件对象,但有一个故障保护originalEvent,可以让浏览器保留原始服务对象。

例如mousewheel,也DOMMouseScroll需要event.originalEvent,因为不支持车轮事件。

于 2015-10-24T16:23:42.777 回答