JavaScript是否提供了先前发生的事件的历史记录?

时间:2011-08-18 02:37:11

标签: javascript javascript-events

我想知道JavaScript是否记录了有关先前发生的事件的信息,以便我可以使用这些信息在当前事件中执行特定的操作过程?

例如,我有一个具有OnBlur事件处理程序的元素,但我想知道在触发OnBlur事件的OnBlur事件之前发生的事件,例如用户按Tab键,箭头键或鼠标单击将焦点移离元素。

JavaScript是否提供了任何便于访问事件历史记录的机制,或者人们可以通过良好的方式向我提出想法?

3 个答案:

答案 0 :(得分:1)

JS中没有任何本机可以做到这一点。

您可以只是监听您感兴趣的事件,并将它们附加到数组或任何对您有用的数据结构中。然后根据需要引用您自己的事件数据库。

就像(JQuery假设..)

var eventdb = [];
$(document).bind("click,blur,whatever", function(e) {
  eventdb.push(e);
});

答案 1 :(得分:0)

不,任何浏览器实现都没有维护这样的历史记录:我认为历史api保持URl遍历,但没有跟踪个别事件。如果你需要一个,你可能需要自己实现一个。

答案 2 :(得分:0)

您可以绑定到对象上的任何事件,并在该对象上维护该事件以用于下一个事件处理程序。这是一个jsfiddle,它显示了对许多事件的绑定,并在对象上存储了最后一个事件类型。还有一个click事件处理程序,它根据保存在对象上的最后一个事件做出决定:http://jsfiddle.net/xEjGA/