0

Javascript中有什么方法可以告诉最近触发的事件是什么?我要问的原因是我正在一个网站上工作,该网站在运行 Windows 8 并且是带有触摸屏的笔记本电脑的那些新超极本上运行不正常。如果您使用标准鼠标功能(使用触摸板或实际鼠标),一切正常,但如果您使用触摸屏,事情就不行了。

这只发生在 IE 上;Chrome 有它自己的问题(我已经在代码中修复了),而 Firefox 没有给我们带来任何问题。

基本上,我们拥有的功能包括一个“hoverIntent”块,如果您在 IE 上使用触摸屏,它会同时注册“over”和“out”功能,这是一个问题。

但是,如果有办法让我判断发生的最后一件事是用户触摸屏幕还是用鼠标单击,我会有一个解决方案。但我不知道是否有办法做到这一点。

我唯一能找到的是在元素上添加“.data('events')”,但返回的是“点击”,无论是实际的鼠标点击还是屏幕上的点击。

有没有办法做到这一点???

4

3 回答 3

0

So I found out that IE has a completely different set of touch events from what EVERY OTHER BROWSER IN THE UNIVERSE has. ughhh. Instead of "touchstart," you use "MSPointerDown," etc. My solution was basically to write new event handlers for MSIE's touch device events.

于 2013-11-26T19:48:50.947 回答
0

浏览器没有记录以前发生的事件的标准方式。如果您想知道在当前事件之前发生了哪些事件,那么您必须为这些事件安装一个事件处理程序并自己记录它们,以便您可以在将来的某个时间回顾它们。

对于传播的事件,您可以在document对象上安装一些事件处理程序,并记录最后 N 个事件的事件和目标。

如果您只是想弄清楚当前事件是什么事件,那么您可以检查传递给事件处理程序的对象的type属性,如.evente.type

于 2013-11-25T23:23:08.433 回答
0

您可以将事件添加到函数参数,然后用于event.type检查触发了哪个事件。前任:

var x = function(e) { 
    alert(e.type);
}
于 2013-11-25T23:23:44.567 回答