javascript下给元素添加事件的方法与代码


Posted in Javascript onAugust 13, 2007

最简单的是这样:

<input type="button" onclick="alert(this.value)" value="我是 button" />
动态添加onclick事件:

<input type="button" value="我是 button" id="bu">
<script type="text/javascript">
var bObj=document.getElementById("bu");
bObj.onclick= objclick;
function objclick(){alert(this.value)};
</script>
如果使用匿名函数 function(){},则如下面所示:

<input type="button" value="我是 button" id="bu">
<script type="text/javascript">
var bObj=document.getElementById("bu");
bObj.onclick=function(){alert(this.value)};
</script>

上面的方法其实原理都一样,都是定义 onclick 属性的值。值得注意的是,如果多次定义 obj.onclick,例如:obj.onclick=method1; obj.onclick=method2; obj.onclick=method3,那么只有最后一次的定义obj.onclick=method3才生效,前两次的定义都给最后一次的覆盖掉了。

再看 IE 中的 attachEvent:

<input type="button" value="我是拉登" id="bu">
<script type="text/javascript">
var bObj = document.getElementById("bu");
bObj.attachEvent("onclick",method1);
bObj.attachEvent("onclick",method2);
bObj.attachEvent("onclick",method3);
function method1(){alert("第一个alert")}
function method2(){alert("第二个alert")}
function method3(){alert("第三个alert")}
</script>
执行顺序是 method3 > method2 > method1 ,先进后出,与堆栈中的变量相似。需要注意的是attachEvent 中第一个参数是on开头的,可以是 onclick/onmouseover/onfocus 等等

据说(未经确认验证)在 IE 中使用 attachEvent 后最好再使用 detachEvent 来释放内存

再看看 Firefox 中的的 addEventListener:

<input type="button" value="我是布什" id="bu">
<script type="text/javascript">
var bObj = document.getElementById("bu");
bObj.addEventListener("click",method1,false);
bObj.addEventListener("click",method2,false);
bObj.addEventListener("click",method3,false);
function method1(){alert("第一个alert")}
function method2(){alert("第二个alert")}
function method3(){alert("第三个alert")}
</script>
可以看到,在 ff 中的执行顺序是 method1 > method2 > method3 , 刚好与 IE 相反,先进先出。需要注意的是 addEventListener 有三个参数,第一个是不带“on”的事件名称,如 click/mouseover/focus等。

Javascript 相关文章推荐
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
Aug 04 Javascript
JQuery 网站换肤功能实现代码
Nov 02 Javascript
javascript删除元素节点removeChild()用法实例
May 26 Javascript
详解JavaScript的while循环的使用
Jun 03 Javascript
Javascript 高阶函数使用介绍
Jun 15 Javascript
js 右侧浮动层效果实现代码(跟随滚动)
Nov 22 Javascript
jQuery实现图片加载完成后改变图片大小的方法
Mar 29 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 Javascript
JS中的数组方法笔记整理
Jul 26 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
Feb 17 Javascript
基于vue、react实现倒计时效果
Aug 26 Javascript
javascript引用对象的方法代码
Aug 13 #Javascript
使一个函数作为另外一个函数的参数来运行的javascript代码
Aug 13 #Javascript
一段效率很高的for循环语句使用方法
Aug 13 #Javascript
javascript实现轮显新闻标题链接
Aug 13 #Javascript
document.open() 与 document.write()的区别
Aug 13 #Javascript
js小技巧--自动隐藏红叉叉
Aug 13 #Javascript
javascript据option的value值快速设定初始的selected选项
Aug 13 #Javascript
You might like
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
php数组随机排序实现方法
2015/06/13 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
用js查找法实现当前栏目的高亮显示的代码
2007/11/24 Javascript
javascript cookies操作集合
2010/04/12 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
JavaScript 中 avalon绑定属性总结
2016/10/19 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
js常见遍历操作小结
2019/06/06 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python实现图片处理和特征提取详解
2017/11/13 Python
PyCharm代码格式调整方法
2018/05/23 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
电子信息科学专业自荐信
2014/01/30 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
自习课吵闹检讨书范文
2014/09/26 职场文书
2015入党自荐书范文
2015/03/05 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
企业团队精神心得体会
2016/01/19 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书