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 相关文章推荐
jquery下利用jsonp跨域访问实现方法
Jul 29 Javascript
面向对象的Javascript之二(接口实现介绍)
Jan 27 Javascript
jQuery实现的多选框多级联动插件
May 02 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
May 27 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
JQuery在循环中绑定事件的问题详解
Jun 02 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
Jun 13 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
Nov 04 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
Dec 09 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
Mar 17 Javascript
JavaScript闭包原理与用法学习笔记
May 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
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
监听angularJs列表数据是否渲染完毕的方法示例
2018/11/07 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
对python 多个分隔符split 的实例详解
2018/12/20 Python
Python弹出输入框并获取输入值的实例
2019/06/18 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
PyTorch安装与基本使用详解
2020/08/31 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
加拿大专业美发产品购物网站:Chatters
2021/02/28 全球购物
大学生个人求职信范文
2013/09/21 职场文书
奠基仪式策划方案
2014/05/15 职场文书
岗位明星事迹材料
2014/05/18 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
幽灵公主观后感
2015/06/09 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
Django使用echarts进行可视化展示的实践
2021/06/10 Python
Nginx如何配置根据路径转发详解
2022/07/23 Servers