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 相关文章推荐
javascript实现10个球随机运动、碰撞实例详解
Jul 08 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
Sep 15 Javascript
js正则表达式惰性匹配和贪婪匹配用法分析
Dec 26 Javascript
JS中闭包的经典用法小结(2则示例)
Dec 28 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
Mar 14 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
Oct 09 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
Apr 12 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
Aug 05 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
Aug 31 Javascript
vue.js的状态管理vuex中store的使用详解
Nov 08 Javascript
JavaScript实现京东放大镜效果
Dec 03 Javascript
js实现验证码干扰(静态)
Feb 22 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
mysql总结之explain
2012/02/27 PHP
php简单实现无限分类树形列表的方法
2015/03/27 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
thinkphp5.1 框架钩子和行为用法实例分析
2020/05/25 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
深入理解javascript构造函数和原型对象
2014/09/23 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
vue使用Axios做ajax请求详解
2017/06/07 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
python django 实现验证码的功能实例代码
2017/05/18 Python
Python 多核并行计算的示例代码
2017/11/07 Python
matplotlib中legend位置调整解析
2017/12/19 Python
python实现多进程代码示例
2018/10/31 Python
python代码编写计算器小程序
2020/03/30 Python
python scatter函数用法实例详解
2020/02/11 Python
浅析matlab中imadjust函数
2020/02/27 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
SQL SERVER面试资料
2013/03/30 面试题
工商管理实习自我鉴定
2013/09/28 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL