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 相关文章推荐
onpropertypchange
Jul 01 Javascript
jquery select选中的一个小问题
Oct 11 Javascript
node.js中的fs.mkdirSync方法使用说明
Dec 17 Javascript
Bootstrap表单布局样式代码
May 31 Javascript
js获取隐藏元素的宽高
Feb 24 Javascript
微信小程序picker组件下拉框选择input输入框的实例
Sep 20 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
Jul 10 Javascript
小程序实现分类页
Jul 12 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 Javascript
详解Vue.js 响应接口
Jul 04 Javascript
JavaScript 闭包的使用场景
Sep 17 Javascript
全网小程序接口请求封装实例代码
Nov 06 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
是否存在第一台收音机的说法
2021/03/01 无线电
laravel安装zend opcache加速器教程
2015/03/02 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
jQuery 常见学习网站与参考书
2009/11/09 Javascript
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
jquery将一个表单序列化为一个对象的方法
2013/12/02 Javascript
捕获和分析JavaScript Error的方法
2014/03/25 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python解析树及树的遍历
2016/02/03 Python
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python3 replace()函数使用方法
2018/03/19 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
教育学专业实习生的自我鉴定
2013/11/26 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
学生检讨书怎么写
2014/10/09 职场文书
支行行长竞聘报告
2014/11/06 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python