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 相关文章推荐
文本框只能选择数据到文本框禁止手动输入
Nov 22 Javascript
解决Jquery鼠标经过不停滑动的问题
Mar 03 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 Javascript
js监听鼠标事件控制textarea输入字符串的个数
Sep 29 Javascript
js无法获取到html标签的属性的解决方法
Jul 26 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
很棒的vue弹窗组件
May 24 Javascript
VUE使用vuex解决模块间传值问题的方法
Jun 01 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
深入浅析Vue中的slots/scoped slots
Apr 03 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
Aug 10 Javascript
Vue初始化中的选项合并之initInternalComponent详解
Jun 11 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
php环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
ThinkPHP缓存方法S()概述
2014/06/13 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
三级下拉菜单的js实现代码
2011/05/23 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
python mysqldb连接数据库
2009/03/16 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
Python 词典(Dict) 加载与保存示例
2019/12/06 Python
详解python itertools功能
2020/02/07 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
python如何调用字典的key
2020/05/25 Python
开办化妆品公司创业计划书
2013/12/26 职场文书
董事长岗位职责
2015/02/13 职场文书
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL