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 相关文章推荐
jquery下操作HTML控件的实现代码
Jan 12 Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 Javascript
JavaScript实现图片DIV竖向滑动的方法
Apr 25 Javascript
Bootstrap Search Suggest使用例子
Dec 21 Javascript
JS实现两周内自动登录功能
Mar 23 Javascript
纯js实现隔行变色效果
Nov 29 Javascript
vue 项目如何引入微信sdk接口的方法
Dec 18 Javascript
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
使用layui的layer组件做弹出层的例子
Sep 27 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
Jul 28 Javascript
在HTML中使用JavaScript的两种方法
Dec 24 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
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
php学习 函数 课件
2008/06/15 PHP
YII使用url组件美化管理的方法
2015/12/28 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
JavaScript数据结构中串的表示与应用实例
2017/04/12 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
three.js 制作动态二维码的示例代码
2020/07/31 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python非递归全排列实现方法
2017/04/10 Python
python测试mysql写入性能完整实例
2018/01/18 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
PyCharm 专业版安装图文教程
2020/02/20 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
中学校庆方案
2014/03/17 职场文书
学校周年庆活动方案
2014/08/22 职场文书
公司员工管理制度
2015/08/04 职场文书
导游词之广州陈家祠
2019/10/21 职场文书
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android