javascript相关事件的几个概念


Posted in Javascript onMay 21, 2015

客户端javascript程序采用了异步事件驱动编程模型。

相关事件的几个概念:

事件类型(event type):用来说明发生什么类型事件的字符串;

事件目标(event target):发生事件的对象;

事件处理程序(event handler):处理或响应事件的函数;

事件对象(event object):与特定事件相关且包含有关该事件详细信息的对象;

事件传播(event propagation):浏览器决定哪个对象出发其事件处理程序的过程;

注册事件处理程序:

1、设置javascript对象属性;

2、设置html标签属性

3、addEventListener或attachEvent(后者为IE的)

function addEvent(target,type,handler){
   if(target.addEventListener){
     target.addEventListener(type,handler,false);
   }else{
     target.attachEvent("on"+type,function(event){return handler.call(target,event)});
   }
 }

 事件传播的三个阶段:

1、发生在目标处理函数之前,称为‘捕获'阶段;

2、对象本身的处理事件的调用;

3、事件的冒泡阶段;

在javascript中,可以为某个元素指定事件指定的方式有以下三种:

1、在html中,使用onclick属性
2、在javascript中,使用onclick属性
3、在javascipt中,使用addEvenListener()方法

三种方法的比较

(1)在第二、三种方法中,可以向函数传入一个event对象,并读取其相应属性,而方法一不可以。
(2)首选第二、三种,第一种不利于将内容与事件分离,也不能使用event对象的相关内容。

一些语法细节

(1)在第一种方法中,onclick大小写无关,但在第二种方法中,必须使用小写。因为HMTL对大小写不敏感,而JS则会区分大小写。
(2)在第二、三种方法中,指定函数名时没有双引号,而第一种作为一个HTML属性,需要双引号。
(3)第一种方法需要括号,第二、三种不需要。

onclick="clickHandler()"
 document.getElementById("jsOnClick").onclick = clickHandler2; 
 document.getElementById("addEventListener").addEventListener("click", clickHandler2);

完整代码:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Even Deom</title> 
 
</head> 
<body> 
 <button id="htmlOnClick" onclick="clickHandler()">htmlOnClick</button> 
 <button id="jsOnClick">jsOnClick</button> 
 <button id="addEventListener">addEventListener</button> 
  
 <script defer> 
 function clickHandler() { 
 alert("onclick attribute in html"); 
 } 
 function clickHandler2(e) { 
 alert(e.target.innerHTML); 
 } 
 document.getElementById("jsOnClick").onclick = clickHandler2; 
 document.getElementById("addEventListener").addEventListener("click", 
  clickHandler2); 
</script> 
</body> 
</html>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jquery.validate分组验证代码
Mar 17 Javascript
css transform 3D幻灯片特效实现步骤解读
Mar 27 Javascript
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
Apr 20 Javascript
JavaScript中cookie工具函数封装的示例代码
Oct 11 Javascript
node.js的事件机制
Feb 08 Javascript
jquery仿京东商品放大浏览页面
Jun 06 jQuery
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
Sep 26 Javascript
详解微信小程序中组件通讯
Oct 30 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
Sep 23 Javascript
原生JS实现pc端轮播图效果
Dec 21 Javascript
javascript实时显示当天日期的方法
May 20 #Javascript
JavaScript中String.prototype用法实例
May 20 #Javascript
实现无刷新联动例子汇总
May 20 #Javascript
javascript中CheckBox全选终极方案
May 20 #Javascript
javascript消除window.close()的提示窗口
May 20 #Javascript
在JS方法中返回多个值的方法汇总
May 20 #Javascript
AspNet中使用JQuery上传插件Uploadify详解
May 20 #Javascript
You might like
php中的时间显示
2007/01/18 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
2019/05/06 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
jQuery 处理表单元素的代码
2010/02/15 Javascript
尝试在让script的type属性等于text/html
2013/01/15 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
详解python单元测试框架unittest
2018/07/02 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
python requests指定出口ip的例子
2019/07/25 Python
Python函数中的可变长参数详解
2019/09/12 Python
np.dot()函数的用法详解
2020/01/17 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
Html5新增标签与样式及让元素水平垂直居中
2019/07/11 HTML / CSS
日本钓鱼渔具和户外用品网上商店:naturum
2016/08/07 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
总经理司机岗位职责
2014/02/06 职场文书
倡议书的写法
2014/08/30 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
2014年减负工作总结
2014/12/10 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
详解SQL的窗口函数
2022/04/21 Oracle