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 相关文章推荐
JavaScript 全角转半角部分
Oct 28 Javascript
{}与function(){}选用空对象{}来存放keyValue
May 23 Javascript
javaScript对文字按照拼音排序实现代码
Dec 27 Javascript
使用纯javascript实现经典扫雷游戏
Apr 23 Javascript
javascript 常见功能汇总
Jun 11 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
Jun 09 Javascript
详解Vuex管理登录状态
Nov 13 Javascript
Vue页面骨架屏的实现方法
May 22 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
Oct 11 Javascript
微信小程序背景音乐开发详解
Dec 12 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
Dec 20 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
Apr 11 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数据缓存的使用说明
2013/05/10 PHP
dedecms函数分享之获取某一栏目所有子栏目
2014/05/19 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
2015/05/11 PHP
CodeIgniter自定义控制器MY_Controller用法分析
2016/01/20 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
JS继承--原型链继承和类式继承
2013/04/08 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
JavaScript动态添加事件之事件委托
2016/07/12 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
Node.js assert断言原理与用法分析
2019/01/04 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
vue键盘事件点击事件加native操作
2020/07/27 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
python的几种开发工具介绍
2007/03/07 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
python之super的使用小结
2018/08/13 Python
python_mask_array的用法
2020/02/18 Python
Python datetime模块的使用示例
2021/02/02 Python
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
莫斯科的韩国化妆品店:Sifo
2019/12/04 全球购物
Why we need EJB
2016/10/20 面试题
《会变的花树叶》教学反思
2014/02/10 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
安全生产标语大全
2014/10/06 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
新闻通讯稿模板
2015/07/22 职场文书
2019 入党申请书范文
2019/07/10 职场文书