码迷,mamicode.com
首页 > Web开发 > 详细

js函数获取ev对象

时间:2018-11-29 23:16:13      阅读:426      评论:0      收藏:0      [点我收藏+]

标签:setattr   自动   pagex   attribute   div   s函数   dom   var   arguments   

今天工作中遇到一个问题,就是平时获取一个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对象

标签:setattr   自动   pagex   attribute   div   s函数   dom   var   arguments   

原文地址:https://www.cnblogs.com/shenwh/p/10041452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!