Javascript中是否有任何方法可以告诉最近被解雇的事件是什么?我要问的原因是我正在一个在运行Windows 8并且是带触摸屏的笔记本电脑的新超级本之一上运行不正常的网站。如果您使用标准鼠标功能(使用触摸板或实际鼠标),一切正常,但如果您使用触摸屏,则事情不会。
这只发生在IE上; Chrome有自己的问题(我在代码中已经修复了),Firefox并没有给我们任何问题。
基本上,我们的功能包括一个“hoverIntent”块,如果你在IE上使用触摸屏,它会注册“over”和“out”功能,这是一个问题。
然而,如果我有办法告诉我发生的最后一件事是用户触摸屏幕还是点击鼠标,我会有一个解决方案。但我不知道是否有办法做到这一点。
我唯一能找到的就是在一个元素上添加“.data('events')”,但无论是实际的鼠标点击还是屏幕上的点击,返回的都是“点击”。
有办法吗???
答案 0 :(得分:0)
浏览器没有记录以前发生的事件的标准方法。如果您想知道在当前事件之前发生了什么事件,那么您将必须为这些事件安装事件处理程序并自己记录它们,以便您可以在将来某个时间回顾它们。
对于传播的事件,您可以在document
对象上安装一些事件处理程序,并记录最后N个事件的事件和目标。
如果您只是想弄清楚当前事件是什么事件,那么您可以检查传递到事件处理程序的type
对象的event
属性,如{{1 }}
答案 1 :(得分:0)
您可以向函数参数添加事件,然后使用event.type
检查触发的事件。
例如:
var x = function(e) {
alert(e.type);
}
答案 2 :(得分:0)
所以我发现IE有一套完全不同的触摸事件来自宇宙中的其他浏览器。 ughhh。而不是“touchstart”,你使用“MSPointerDown”等。我的解决方案基本上是为MSIE的触摸设备事件编写新的事件处理程序。