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 相关文章推荐
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
jQuery.clean使用方法及思路分析
Jan 07 Javascript
js操作iframe的一些方法介绍
Jun 25 Javascript
JS中prototype关键字的功能介绍及使用示例
Jul 21 Javascript
浅谈Javascript 执行顺序
Dec 18 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
微信小程序分页加载的实例代码
Jul 11 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
深入理解Vue生命周期、手动挂载及挂载子组件
Sep 27 Javascript
微信小程序支付之c#后台实现方法
Oct 19 Javascript
Vue shopCart 组件开发详解
Jan 26 Javascript
JS自定义对象创建与简单使用方法示例
Jan 15 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 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
php画图实例
2014/11/05 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
多广告投放代码 推荐
2006/11/13 Javascript
jQuery示例收集
2010/11/05 Javascript
jquery的ajax请求全面了解
2013/03/20 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
2013/04/15 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
Python线程创建和终止实例代码
2018/01/20 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
python简单操作excle的方法
2018/09/12 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
光声世纪笔试题目
2012/08/25 面试题
长青弘远的面试题
2012/06/09 面试题
护士自我评价范文
2014/01/25 职场文书
群众路线教育实践活动整改方案(个人版)
2014/10/25 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python