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简单体验
Jan 10 Javascript
jQuery UI AutoComplete 使用说明
Jun 20 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
Apr 25 Javascript
javascript中递归函数用法注意点
Jul 30 Javascript
jQuery formValidator表单验证
Jan 07 Javascript
javascript事件模型介绍
May 31 Javascript
前端js弹出框组件使用方法
Aug 24 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
Mar 30 Javascript
ionic2.0双击返回键退出应用
Sep 17 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 Javascript
如何利用javascript接收json信息并进行处理
Aug 06 Javascript
Javascript webpack动态import
Apr 19 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 Switch 语句之学习笔记
2013/09/21 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
yii分页组件用法实例分析
2015/12/28 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
javascript网页关键字高亮代码
2008/07/30 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
laypage.js分页插件使用方法详解
2019/07/27 Javascript
VUE中使用HTTP库Axios方法详解
2020/02/05 Javascript
Python可跨平台实现获取按键的方法
2015/03/05 Python
python序列化与数据持久化实例详解
2019/12/20 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
python第三方库学习笔记
2020/02/07 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
最新党员思想汇报
2014/01/01 职场文书
迟到检讨书5000字
2014/01/31 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
预备党员转正考核材料
2014/06/03 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
安全伴我行主题班会
2015/08/13 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
JS实现简单九宫格抽奖
2022/06/28 Javascript