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 相关文章推荐
JS设置获取cookies的方法
Jan 26 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
Feb 19 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
node.js 中国天气预报 简单实现
Jun 06 Javascript
javascript中的 object 和 function小结
Aug 14 Javascript
js中获取jsp表单中radio类型的值简单实例
Aug 15 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
vue-router实现组件间的跳转(参数传递)
Nov 07 Javascript
脚手架vue-cli工程webpack的作用和特点
Sep 29 Javascript
微信小程序实现获取用户信息并存入数据库操作示例
May 07 Javascript
JavaScript解析JSON数据示例
Jul 16 Javascript
JavaScript面向对象中接口实现方法详解
Jul 24 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实现搜索相似图片
2015/09/22 PHP
PHP6新特性分析
2016/03/03 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
jQuery.Form实现Ajax上传文件同时设置headers的方法
2017/06/26 jQuery
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
Vue三种常用传值示例(父传子、子传父、非父子)
2018/07/24 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
跟老齐学Python之集合(set)
2014/09/24 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
详解Python中的type和object
2018/08/15 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
python django中8000端口被占用的解决
2019/12/17 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Python turtle画图库&amp;&amp;画姓名实例
2020/01/19 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
团员个人的自我评价
2013/12/02 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
2016继续教育研修日志
2015/11/13 职场文书
MySQL提取JSON字段数据实现查询
2022/04/22 MySQL