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 相关文章推荐
在IE模态窗口中自由查看HTML源码的方法
Mar 08 Javascript
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
Oct 12 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
JQuery给网页更换皮肤的方法
May 30 Javascript
jQuery使用each方法与for语句遍历数组示例
Jun 16 Javascript
Three.js学习之正交投影照相机
Aug 01 Javascript
js实现图片切换(动画版)
Dec 25 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
Feb 09 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
Sep 16 Javascript
微信小程序点击保存图片到本机功能
Dec 13 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
May 27 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
2017/07/13 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
javascript suggest效果 自动完成实现代码分享
2012/02/17 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
requireJS使用指南
2016/04/27 Javascript
jQueryUI中的datepicker使用方法详解
2016/05/25 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
原生JS与jQuery编写简单选项卡
2017/10/30 jQuery
讲解vue-router之什么是动态路由
2018/05/28 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
python处理图片之PIL模块简单使用方法
2015/05/11 Python
详解python之配置日志的几种方式
2017/05/22 Python
浅谈Python处理PDF的方法
2017/11/10 Python
python实现随机漫步算法
2018/08/27 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
工艺员岗位职责
2014/02/11 职场文书
募捐倡议书
2014/04/14 职场文书
建筑学专业自荐书
2014/07/09 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
八年级作文之友情
2019/11/25 职场文书