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 相关文章推荐
A标签中通过href和onclick传递的this对象实现思路
Apr 19 Javascript
解决json日期格式问题的3种方法
Feb 02 Javascript
CSS3实现动态背景登录框的代码
Jul 28 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
Oct 12 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
Aug 25 Javascript
vue实现商城购物车功能
Nov 27 Javascript
vue按需加载组件webpack require.ensure的方法
Dec 13 Javascript
Vue登录注册并保持登录状态的方法
Aug 17 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
Sep 25 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 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 获取select下拉列表框的值
2010/05/08 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
htm调用JS代码
2007/03/15 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
2017/09/06 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
NET程序员上机面试题
2015/05/23 面试题
法学专业个人求职信
2013/09/26 职场文书
管理站站长岗位职责
2013/11/27 职场文书
皮肤科医师岗位职责
2013/12/04 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
中华魂放飞梦想演讲稿
2014/08/26 职场文书
好人好事新闻稿
2015/07/17 职场文书
Python进行区间取值案例讲解
2021/08/02 Python