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 相关文章推荐
instanceof和typeof运算符的区别详解
Jan 06 Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 Javascript
深入学习JavaScript中的原型prototype
Aug 13 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
May 25 Javascript
jQuery实现弹出带遮罩层的居中浮动窗口效果
Sep 12 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
Oct 18 Javascript
使用clipboard.js实现复制功能的示例代码
Oct 16 Javascript
微信小程序实现单选功能
Oct 30 Javascript
在layui框架中select下拉框监听更改事件的例子
Sep 20 Javascript
es6中let和const的使用方法详解
Feb 24 Javascript
React实现类似淘宝tab居中切换效果的示例代码
Jun 02 Javascript
JS实现按比例缩小图片宽高
Aug 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
从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
2014/08/20 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
PHP中实现中文字串截取无乱码的解决方法
2018/05/29 PHP
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
vue鼠标悬停事件实例详解
2019/04/01 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python利用BeautifulSoup解析Html的方法示例
2017/07/30 Python
python 除法保留两位小数点的方法
2018/07/16 Python
基于python图像处理API的使用示例
2020/04/03 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
Shein英国:女性时尚网上商店
2019/04/10 全球购物
设备收款委托书范本
2014/10/02 职场文书
代办社保委托书范文
2014/10/06 职场文书
考试作弊检讨书
2015/01/27 职场文书
python实现简易名片管理系统
2021/04/11 Python
Python基于百度API识别并提取图片中文字
2021/06/27 Python
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
golang定时器
2022/04/14 Golang