Js获取事件对象代码_javascript技巧

一般做法:

复制代码 代码如下:

<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>

“内事不决问百度,外事不决问谷歌”, 此言不虚。搜索了下,答案还真不少,不过大多数雷同(可能是巧合)。
http://www.jb51.net/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()"),也不推荐使用这种方法,会造成维护和开发的麻烦。

时间: 2024-10-11 23:11:35

Js获取事件对象代码_javascript技巧的相关文章

js获取单选按钮的数据_javascript技巧

也许这是个很简单的问题,可是在我学习程序的时候忽略了单选按钮.导致对于他的数据传递方法的空缺.经过嗷嗷的帮助实现了下面关于年龄选择的表单的数据获取,仅仅在IE下测试成功了.先测试一下这个程序效果. 复制代码 代码如下: <form method="post" name="form1">     <label><input type="radio" name="radio" value="

JS传递对象数组为参数给后端,后端获取的实例代码_javascript技巧

前端JS代码: var conditons = []; var test1 = new Object(); test1.name="1"; test1.id="2"; var test2 = new Object(); test2.name="1"; test2.id="2"; conditons.push(test1); conditons.push(test2); $(function(){ $.ajax({ async:

js enter键激发事件实例代码_javascript技巧

如下所示: document.onkeydown = function (e) { if (!e) e = window.event; if ((e.keyCode || e.which) == 13) { $("#btnSubmit").click(); } } 以上这篇js enter键激发事件实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持. 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角

js和jquery实现监听键盘事件示例代码_javascript技巧

项目中要监听键盘组合键CTRL+C,以便做出对应的响应.查了一些方法但是其兼容性和稳定性不是很高,最终得到如下方法,经测试在Firfox.Chrome.IE中均可以使用.一.使用javascript实现 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script> function keyListener(ev

浅谈js键盘事件全面控制_javascript技巧

主要分四个部分 第一部分:浏览器的按键事件 第二部分:兼容浏览器 第三部分:代码实现和优化 第四部分:总结 第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypress和keyup,它们分别对应onkeydown. onkeypress和onkeyup这三个事件句柄.一个典型的按键会产生所有这三种事件,依次是keydown,keypress,然后是按键释放时候的keyup. 在这3种事件类型中,keydown和keyup比较底层,而keypr

简单的JS轮播图代码_javascript技巧

在团队带人,突然被人问到轮播图如何实现,进入前端领域有一年多了,但很久没自己写过,一直是用大牛写的插件,今天就写个简单的适合入门者学习的小教程.当然,轮播图的实现原理与设计模式有很多种,我这里讲的是用面向过程函数式编程去实现,相对于面向对象设计模式,代码难免会显得臃肿冗余.但没有面向对象的抽象却很适合新手理解与学习.已经在BAT的同学看到希望少喷点.另外可以多提意见. 轮播图的原理: 一系列的大小相等的图片平铺,利用CSS布局只显示一张图片,其余隐藏.通过计算偏移量利用定时器实现自动播放,或通过

移动端js触摸事件详解_javascript技巧

在移动开发中,一种较为容易的做法是,先在桌面上开始原型设计,然后再在打算要支持的设备上处理移动特有的部分.多点触摸正是难以在PC上进行测试的那些功能之一,因为大部分的PC都没有触摸输入.  不得不在移动设备上进行的测试有可能会拉长你的开发周期,因为你所做的每项改变都需要提交代码到服务器上,接着再加载到设备上.然后,一旦运行后,对应用也就没有太多的调试了,因为平板电脑和智能手机都很缺乏web开发者所用的工具. 这个问题的一个解决方案是在开发机器上模拟触发事件.对于单点触摸,触摸事件可以基于鼠标事件

js简单倒计时实现代码_javascript技巧

本文实例讲述了js简单倒计时实现代码.分享给大家供大家参考,具体如下: <div class="time"> 距离活动结束还有<span id="day"></span>天 <span id="hours"></span>小时 <span id="min"></span>分 <span id="sec"><

Javascript处理DOM元素事件实现代码_javascript技巧

DOM元素都有一些标准事件,一般使用时只要使用onclick=function的方式就可以了,但是当需要为DOM元素添加多个事件,删除事件,或在用Javascript封装控件的时候,为封装的控件添加自定义事件的时候,onclick=function的方式就不够用了,但是浏览器有addEventListener和attachEvent方法可供调用,从而模拟出类似于C#中的事件委托的事件触发机制! 复制代码 代码如下: /* * 功能:事件处理 * Author:LQB * 时间:2009-1-4