js函数中传入的event参数
官方解释:
Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 事件通常与函数结合使用,函数不会在事件发生前被执行!
event是事件的参数啊!在event中包含了事件触发时的参数,比如click事件的event中包含着.e.pageX,e.pageY,keydown事件中包含着ev.keyCode等,在ie中,event是全局的可以通过window.event来获取,在其他浏览器中都是作为参数传入的。
所以好多事件函数都是这样写:
mydiv.onclick = function(ev){
if(!ev){ev = window.event;} //这句也可以简写成:ev=window.event||ev;
alert(ev.pageX+”,”+ev.pageY);
}
以下部分 转载自其它博文,点击这里进行跳转
如果没有传入event作为参数,在函数内部如何获取event呢?
js对于函数的定义是非常松,即使你在函数定义时未写任何参数,或者你定义的参数有多个,但是你调用时,一个参数也不填,也不会出错的。
因为js函数内默认有个变量,保存你的入参叫:arguments,
他是一个数组,下标从0开始,
所以获取event可以写成
function eventTest(){var event = window.event||arguments[0];//target 就是这个对象target = event.srcElement||event.target,//这个对象的值targetValue = target.value;
}
当然,有的时候需要给函数传入几个参数,这时如果要用想用到event的话可以这么写
function eventTest(a,b){var event = window.event || arguments.callee.caller.arguments[0]//target 就是这个对象target = event.srcElement||event.target,//这个对象的值targetValue = target.value;
}
如果传入了参数却如第一种写法的话,则arguments中将会传入传入的参数,这时获取的arguments[0]就会是第一个传入的参数了。
鉴于此,故还是都用第二中方法获取更为稳妥。
js函数中传入的event参数相关推荐
- python爬取js加载的数据_Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程...
昨天有小伙伴找我,新浪新闻的国内新闻页,其他部分都是静态网页可以抓到,但是在左下方的最新新闻部分,不是静态网页,也没有json数据,让我帮忙抓一下.大概看了下,是js加载的,而且数据在js函数中,很有 ...
- js与python 抓包_Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程
昨天有小伙伴找我,新浪新闻的国内新闻页,其他部分都是静态网页可以抓到,但是在左下方的最新新闻部分,不是静态网页,也没有json数据,让我帮忙抓一下.大概看了下,是js加载的,而且数据在js函数中,很有 ...
- C语言中关于向函数中传入结构指针的易错点及解决方案
前言(Introduction): 最近在学习链表的过程中,我写了这样一段函数: Recently in the process of learning the linked-list, I wrot ...
- 详解 js 函数中的 arguments
详解 js 函数中的 arguments 1.什么 arguments 简单来说:arguments 是一个对应于传递给函数的参数的类数组对象 arguments 对象是所有(非箭头)函数中都可用的局 ...
- python在函数中传入多个实参
python在函数中传入多个实参 def make_pizza(*toppings):print("-----------------")print(toppings)make_p ...
- 在JS函数中执行C#中的函数、字段
1.调用字段 cs文件的代码: public int id = 0;protected void Page_Load(object sender, EventArgs e){id = 2;} View ...
- js函数中参数的传递
先看一道JS的笔试题: var setObj=function(o){o.name="xiaoming";o={};o.name="xiaohong"; } v ...
- JavaScript函数中的arguments(js函数中的arguments,函数默认参数arguments)
简述:js中的函数大家都比较熟悉,今天来分享下函数中的默认参数arguments.js的函数参数和其他的语言有些不同,它并不介意你传进来多少个参数,以及参数的数据类型,即使你在定义函数时,只设置了两个 ...
- mysql存储过程或函数中传入参数与表字段名相同引发的悲剧
真实案例.如下的一个存储过程: create procedure Apple(in user_id int) begin delete from users where user_id = user_ ...
最新文章
- oracle 错误解决
- 共享快递柜业务场景实战(服务构建)
- SQL语句中LEFT JOIN、JOIN、INNER JOIN、RIGHT JOIN的区别?
- Educational Codeforces Round 112 (Rated for Div. 2)
- ZigBee技术的应用和优势
- PHP 使用concat的无限分类
- iOS之NSURLSessionDownloadTask下载
- Windwos8.1下配置PHP环境
- XX项目技术架构模板
- 清除计算机垃圾cmd命令,cmd清理垃圾命令代码是什么
- Enigma密码机初步解析
- 在字节实习8个月后,成功转正
- linux 用户权限不够,linux .权限不够怎么办
- 第十一周项目1——二叉树算法验证(3) 中序线索化二叉树的算法验证
- python木马病毒_Python引导木马病毒(拓展篇)
- 山石岩读丨一文读懂区块链安全:区块链会带来哪些冲击?
- http-parser用法
- Windows8 安装Vs2008 报错的解决方法
- qemu 加载ubuntu
- 整理iOS 错误警告