我想知道JavaScript是否记录了有关先前发生的事件的信息,以便我可以使用这些信息在当前事件中执行特定的操作过程?
例如,我有一个具有OnBlur事件处理程序的元素,但我想知道在触发OnBlur事件的OnBlur事件之前发生的事件,例如用户按Tab键,箭头键或鼠标单击将焦点移离元素。
JavaScript是否提供了任何便于访问事件历史记录的机制,或者人们可以通过良好的方式向我提出想法?
答案 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/