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 相关文章推荐
JavaScript打字小游戏代码
Dec 26 Javascript
关于全局变量和局部变量的那些事
Jan 11 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
Oct 23 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
Jun 16 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
May 04 Javascript
three.js加载obj模型的实例代码
Nov 10 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
Dec 27 Javascript
JS简单生成由字母数字组合随机字符串示例
May 25 Javascript
vue项目实现github在线预览功能
Jun 20 Javascript
JavaScript模拟实现自由落体效果
Aug 28 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 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中判断字符串是否全是中文或含有中文的实现代码
2011/09/16 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
浅谈Postman解决token传参的问题
2018/03/31 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
详解Vue路由自动注入实践
2019/04/17 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
Python实现图片识别加翻译功能
2019/12/26 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
世界上最受欢迎的钓鱼诱饵:Rapala
2019/05/02 全球购物
创意广告词
2014/03/17 职场文书
学历公证书范本
2014/04/09 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
环保倡议书怎么写
2014/05/16 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
党校党性分析材料
2014/12/19 职场文书
数学教师求职信范文
2015/03/20 职场文书
中秋节晚会开场白
2015/05/29 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang