Js获取事件对象代码


Posted in Javascript onAugust 05, 2010

一般做法:

<input type="button" id="test" value="点我测试" /> 
<script type="text/javascript"> 
var testBtn = document.getElementById('test'); 
testBtn.onclick = testFun; 
function testFun(e) 
{ 
var evt = e || window.event; 
alert(evt); 
} 
</script>

或者:
<input type="button" id="test" value="点我测试" /> 
<script type="text/javascript"> 
var testBtn = document.getElementById('test'); 
if(window.addEventListener) 
{ 
testBtn.addEventListener('click', testFun, false); 
} 
else if(window.attachEvent) 
{ 
testBtn.attachEvent('onclick', testFun); 
} 
function testFun(e) 
{ 
var evt = e || window.event; 
alert(evt); 
} 
</script>

返回的值都是 “[object Event]“。
但如果是这种方式呢?
<input type="button" id="test_1" value="点我测试" onclick="testFun_1()" /> 
<script type="text/javascript"> 
function testFun_1() 
{ 
//此处如何获得? 
} 
</script>

“内事不决问百度,外事不决问谷歌”, 此言不虚。搜索了下,答案还真不少,不过大多数雷同(可能是巧合)。
https://3water.com/article/19408.htm
http://www.cnblogs.com/cuixiping/archive/2008/04/13/1150847.html
愚公 的这个文章(貌似转帖)还是颇有见解的。
<input type="button" id="test_1" value="点我测试" onclick="testFun_1()" /> 
<script type="text/javascript"> 
function testFun_1() 
{ 
var evt = getEvent(); 
alert(evt); 
} 
function getEvent(){ 
if(window.event) return window.event; //这里用对象检测更为妥当 
func=getEvent.caller; 
while(func!=null){ 
var arg0=func.arguments[0]; 
if(arg0){ 
if((arg0.constructor==Event || arg0.constructor ==MouseEvent) 
|| (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){ 
return arg0; 
} 
} 
func=func.caller; 
} 
return null; 
} 
</script>

一般来说,很少用到这种嵌入式的写法(js写在html标签中 onclick="testFun_1()"),也不推荐使用这种方法,会造成维护和开发的麻烦。
Javascript 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
用jquery实现等比例缩放图片效果插件
Jul 24 Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
Nov 29 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
Aug 25 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
Jan 14 Javascript
Three.js学习之几何形状
Aug 01 Javascript
js实现文字跑马灯效果
Feb 23 Javascript
Angularjs实现数组随机排序的方法
Oct 02 Javascript
关于AOP在JS中的实现与应用详解
May 06 Javascript
TypeScript魔法堂之枚举的超实用手册
Oct 29 Javascript
zeroclipboard复制到剪切板的flash
Aug 04 #Javascript
jQuery Study Notes学习笔记 (二)
Aug 04 #Javascript
JQuery Study Notes 学习笔记(一)
Aug 04 #Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
Aug 03 #Javascript
基于jquery的让textarea自适应高度的插件
Aug 03 #Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
Aug 03 #Javascript
jQuery的实现原理的模拟代码 -3 事件处理
Aug 03 #Javascript
You might like
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
jquery.uploadifive插件怎么解决上传限制图片或文件大小问题
2017/05/08 jQuery
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
Python Queue模块详细介绍及实例
2016/12/27 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
python matplotlib画图实例代码分享
2017/12/27 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Python上下文管理器全实例详解
2019/11/12 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
倩碧英国官网:Clinique英国
2018/08/10 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
师范生的个人求职信范文
2014/01/04 职场文书
小学家长评语大全
2014/04/16 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers
Java使用HttpClient实现文件下载
2022/08/14 Java/Android