JavaScript三种绑定事件方式及相互之间的区别分析


Posted in Javascript onJanuary 10, 2017

本文实例讲述了JavaScript三种绑定事件方式及相互之间的区别。分享给大家供大家参考,具体如下:

JavaScript三种绑定事件的方式:

1.

<div id="btn" onclick="clickone()"></div> //直接在DOM里绑定事件
<script>
function clickone(){ alert("hello"); }
</script>

2.

<div id="btn"></div>
<script>
document.getElementById("btn").onclick = function(){ alert("hello"); } //脚本里面绑定
</script>

3.

<div id="btn"></div>
<script>
document.getElementById("btn").addeventlistener("click",clickone,false); //通过侦听事件处理相应的函数
function clickone(){ alert("hello"); }
</script>

那么问题来了,1 和 2 的方式是我们经常用到的,那么既然已经有两种绑定事件的方法为什么还要有第三种呢?答案是这样的:

用 "addeventlistener" 可以绑定多次同一个事件,且都会执行,而在DOM结构如果绑定两个 "onclick" 事件,只会执行第一个;在脚本通过匿名函数的方式绑定的只会执行最后一个事件。

1.

<div id="btn" onclick="clickone()" onclick="clicktwo()"></div>
<script>
function clickone(){ alert("hello"); } //执行这个
function clicktwo(){ alert("world!"); }
</script>

2.

<div id="btn"></div>
<script>
document.getElementById("btn").onclick = function(){ alert("hello"); }
document.getElementById("btn").onclick = function(){ alert("world"); } //执行这个
</script>

3.

<div id="btn"></div>
<script>
document.getElementById("btn").addeventlistener("click",clickone,false);
function clickone(){ alert("hello"); } //先执行
document.getElementById("btn").addeventlistener("click",clicktwo,false);
function clicktwo(){ alert("world"); } //后执行
</script>

以上;可根据场景灵活选择。

PS:关于javascript常用事件及相关说明还可参考本站在线工具:

javascript事件与功能说明大全:
http://tools.3water.com/table/javascript_event

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
javascript动态改变img的src属性图片不显示的解决方法
Oct 20 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
JavaScript动态插入script的基本思路及实现函数
Nov 11 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
Feb 19 Javascript
关于Javascript加载执行优化的研究报告
Dec 16 Javascript
JavaScript函数作用域链分析
Feb 13 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
Feb 02 Javascript
原生JS实现图片轮播切换效果
Dec 15 Javascript
js实现密码强度检验
Jan 15 Javascript
深入掌握 react的 setState的工作机制
Sep 27 Javascript
基于Vue渲染与插件的加载顺序的问题详解
Mar 05 Javascript
js屏蔽F12审查元素,禁止修改页面代码等实现代码
Oct 02 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 #Javascript
JavaScript获取键盘按键的键码(参照表)
Jan 10 #Javascript
详解vue之页面缓存问题(基于2.0)
Jan 10 #Javascript
jQuery验证表单格式的使用方法
Jan 10 #Javascript
Html5 js实现手风琴效果
Apr 17 #Javascript
jquery做个日期选择适用于手机端示例
Jan 10 #Javascript
javascript删除html标签函数cIsHTML
Jan 09 #Javascript
You might like
用缓存实现静态页面的测试
2006/12/06 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
2013/09/28 PHP
php object转数组示例
2014/01/15 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php多进程应用场景实例详解
2019/07/22 PHP
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
初识Node.js
2015/03/20 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
js模糊查询实例分享
2016/12/26 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
关于javascript sort()排序你可能忽略的一点理解
2017/07/18 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Vue如何实现验证码输入交互
2020/12/07 Vue.js
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
python字符串,数值计算
2016/10/05 Python
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
解决Tensorflow 内存泄露问题
2020/02/05 Python
python实现批量命名照片
2020/06/18 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
Nuts.com:优质散装,批发坚果、干果和巧克力等
2017/03/21 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
财务会计应届生求职信
2013/11/24 职场文书
电子银行营销方案
2014/02/22 职场文书
苏州园林导游词
2015/02/03 职场文书
研究生论文答辩开场白
2015/05/27 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js
HTML中的表单元素介绍
2022/02/28 HTML / CSS