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 相关文章推荐
fromCharCode和charCodeAt 方法
Dec 27 Javascript
基于jQuery的图片剪切插件
Aug 03 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
Dec 08 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
Mar 02 Javascript
为什么JS中eval处理JSON数据要加括号
Apr 13 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
May 19 Javascript
用JS动态设置CSS样式常见方法小结(推荐)
Nov 10 Javascript
jQuery弹出层插件popShow用法示例
Jan 23 Javascript
深入解析koa之中间件流程控制
Jun 17 Javascript
Vue的data、computed、watch源码浅谈
Apr 04 Javascript
解决vue无法侦听数组及对象属性的变化问题
Jul 17 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教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
jQuery限制图片大小的方法
2016/05/25 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
vue实现动态按钮功能
2019/05/13 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
2020/09/12 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
keras中的backend.clip用法
2020/05/22 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
2020/10/14 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
HTML5的结构和语义(2):结构
2008/10/17 HTML / CSS
Canvas环形饼图与手势控制的实现代码
2019/11/08 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
影视动画专业个人的自我评价
2013/12/31 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
重阳节慰问信
2015/02/15 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
远程教育学习心得体会
2016/01/23 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
简单聊聊Golang中defer预计算参数
2022/03/25 Golang