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 相关文章推荐
动态改变textbox的宽高的js
Oct 26 Javascript
基于jquery循环map功能的代码
Feb 26 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
Jan 23 Javascript
JS性能优化笔记搜索整理
Aug 21 Javascript
从零学jquery之如何使用回调函数
May 16 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
Aug 19 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
Nov 15 Javascript
jQuery Validate验证框架详解(推荐)
Dec 17 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
vue实现计步器功能
Nov 01 Javascript
vue-resource:jsonp请求百度搜索的接口示例
Nov 09 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字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
php截取字符串函数分享
2015/02/02 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
js 解决“options为空或不是对象”
2008/12/22 Javascript
jquery遍历input取得input的name
2009/04/27 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
JQuery中如何传递参数如click(),change()等具体实现
2013/04/28 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
js的onload事件及初始化按钮事件示例代码
2013/09/25 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
python实现日常记账本小程序
2018/03/10 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
经典c++面试题三
2015/07/08 面试题
医学院毕业生自荐信
2013/11/08 职场文书
行政专员求职信范文
2014/05/03 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
甜品店创业计划书
2014/08/14 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
工作检讨书500字
2014/10/19 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers