js函数获取ev对象
Posted 星马豪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js函数获取ev对象相关的知识,希望对你有一定的参考价值。
今天工作中遇到一个问题,就是平时获取一个ev(event)对象时候一般直接在调用方法里面写一个ev参数,即可直接拿到这个对象,但是有时候会遇到函数调用不是直接加在一个dom对象的后面,如:
var oDiv = document.getElementById(‘box‘);
oDiv.onclick = function(ev) {
var x = ev.pageX;
...
};
而是写在函数属性中,如:
var oDiv = document.getElementById(‘box‘);
oDiv.setAttribute(‘onclick‘,‘fn()‘);
function fn() {
};
这个时候是无法直接在函数里面传参的,只能通过如下方式获取该对象
function fn() {
var ev = arguments.callee.caller.arguments[0];
1.当函数被调用时,它的arguments.callee对象就会指向自身,也就是一个对自己的引用。
由于arguments在函数被调用时才有效,因此arguments.callee在函数未调用时是不存在的(即null.callee),且解引用它会产生异常。
2.在一个函数调用另一个函数时,被调用函数会自动生成一个caller属性,指向调用它的函数对象。如果该函数当前未被调用,或并非被其他函数调用,则caller为null。
};
以上是关于js函数获取ev对象的主要内容,如果未能解决你的问题,请参考以下文章
JQuery之JQuery的版本 JQuery入门 属性获取 JQuery就绪函数 JS文档就绪函数和JQuery文档就绪函数的区别 JS对象和JQuery对象的区别 关于$的使用 多个