//event获取的通用方法function getKeyCode(){e = arguments.callee.caller.arguments[0]; //window.event只适用于IE,C
//event获取的通用方法function getKeyCode(){ e = arguments.callee.caller.arguments[0]; //window.event只适用于IE,Chrome,不适用于FF return e.keyCode;} $("body").keydown(function() { if(getKeyCode()=='13'){ //keyCode=13是回车键 //do something... }});
这里要解释一下arguments.callee.caller.arguments[0]:
arguments 该对象代表正在执行的函数和调用它的函数的参数。caller 返回一个对函数的引用,该函数调用了当前函数。callee 返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。
简言之,arguments可以看成是一个参数对象,arguments.callee是当前正在执行的函数,arguments.callee.caller是当前正在执行的函数的上级函数。
这样就可以看到,在getKeyCode方法中,arguments.callee.caller直接返回了$("body").keydown(function(){})的function,而这个function里的arguments[0]就是event对象!!
参考:
- http://www.jb51.net/article/32839.htm
- http://www.jb51.net/article/46323.htm