一、前言

        继续上一章的内容,继续今天的Js学习。

二、内容

        事件处理程序

事件就是用户或浏览器自身执行的某种动作。而响应某个事件的函数就叫做事件处理程序

//HTML事件处理程序
例:

<input type="button" value="Click Me" onclick="try{showMessage();}catch(ex){}"> 缺点:
1.时差问题
2.扩展事件处理程序的作用域链在不同浏览器中会导致不同结果
3.HTML与JavaScript代码紧密耦合 //JavaScript事件处理程序
addEventListener()指定事件处理程序
removeEventListener()删除事件处理程序 三个参数:
1.要处理的事件名
2.作为事件处理程序的函数
3.一个布尔值 —— true是在捕获阶段(由外向内)调用;false是在冒泡阶段(由内向外)调用,通常使用false! 例:
var btn = document.getElementById("myBtn");
btn.addEventListener("click",function(){alert(this.id);},false); //如何使用removeEventListener()
var btn = document.getElementById("myBtn");
var handler = function(){alert(this.id);}; btn.addEventListener("click",handler,false);
......
btn.removeEventListener("click",handler,false);

         事件对象

在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含所有与事件有关的信息。

例:
var btn = document.getElementById("myBtn");
btn.onclick = function(event){alert(event.type)};
//或
btn.addEventListener("click",function(event){alert(event.type);},false);

事件类型

.UI事件
1.1 load —— 完全加载
1.2 unload —— 完全卸载
1.3 abort —— 停止下载过程中,嵌入的内容没有加载完
1.4 error —— js错误
1.5 select —— 选择文本框的一个或多个
1.6 resize —— 窗口大小发生变化
1.7 scroll —— 滚动条滚动
.焦点事件
2.1 blur —— 元素失去焦点(不冒泡)
2.2 focus —— 元素获得焦点(不冒泡)
2.3 focusin —— 元素获得焦点(冒泡)
2.4 focusout —— 元素失去焦点
.鼠标事件
3.1 click —— 单击事件
3.2 dbclick —— 双击事件
3.3 mousedown —— 按下鼠标任意按钮
3.4 mouseenter —— 光标从元素外部首次移动到该元素范围之内
3.5 mouseleave —— 在元素上方的光标移动到元素范围之外
3.6 mousemove —— 鼠标指针在元素内部移动时重复触发
3.7 mouseout —— 元素上方鼠标指针移入另一个元素
3.8 mouseover —— 鼠标指针位于一个元素外部,用户首次移入另一个元素
3.9 mouseup —— 释放鼠标按钮
.滚轮事件
4.1 mousewheel —— 鼠标滚轮事件
.文本事件
5.1 textInput —— 用户在可编辑区域中输入字符触发,用意是将文本显示给用户之前更容易拦截文本
.键盘事件
6.1 keydown —— 按下任意键,按住不放会重复触发
6.2 keypress —— 按下字符键,按住不放会重复触发
6.3 keyup —— 释放键盘键
.合成事件 
.变动事件 .HTML5事件
9.1 contextmenu —— 通过单击鼠标右键可以调出上下文菜单
9.2 beforeunload —— 在浏览器卸载页面之前触发,可以通过它来取消卸载并继续使用原有页面
9.3 DOMContentLoaded —— 形成完整的DOM树之后就会触发,不理会css,js资源是否下载完毕,用户可以尽早与页面交互
9.4 pageshow 与 pagehide —— 该事件处理程序必须要添加到window对象
9.5 hashchangde —— 在URL参数列表(#后的所有字符串)发送变化时通知,必须要添加到window对

【JavaScript】事件的更多相关文章

  1. JavaScript事件代理和委托(Delegation)

    JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委 ...

  2. JavaScript事件概览

    JavaScript事件 JavaScript是单线程,在同一个时间点,不可能同时运行两个"控制线程". 事件句柄和事件对象 1.注册事件句柄 标准和非标准 var button= ...

  3. 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)

    前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...

  4. JavaScript 事件

    事件 概念:事件是可以被 JavaScript 侦测到的行为. JavaScript 使我们有能力创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触 ...

  5. JavaScript事件详解-jQuery的事件实现(三)

    正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...

  6. JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】

    正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...

  7. 总结JavaScript事件机制

    JavaScript事件模型 在各种浏览器中存在三种事件模型: 原始事件模型 , DOM2事件模型 , IE事件模型. 其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE ...

  8. 解析Javascript事件冒泡机制

    本资源引自: 解析Javascript事件冒泡机制 - 我的程序人生 - 博客频道 - CSDN.NET http://blog.csdn.net/luanlouis/article/details/ ...

  9. JavaScript事件流原理解析

    一.为什么会有这一篇的文章 国庆前几天由于任务比较重,要赶在国庆前把一个进度的任务开发完成,所以也就有点赶,但是却遇到了一个比较奇怪的Bug,导致了任务比预计的延迟了几个小时,对此深表遗憾,所以利用国 ...

  10. Javascript事件机制兼容性解决方案

    本文的解决方案可以用于Javascript native对象和宿主对象(dom元素),通过以下的方式来绑定和触发事件: 或者 var input = document.getElementsByTag ...

随机推荐

  1. sqoop 数据迁移

    sqoop 数据迁移 1 概述 sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具. 导入数据:MySQL,Oracle导入数据到Hadoop的HDFS.HIVE.H ...

  2. Eclipse 使用过程中的问题及解决方法

    1.Eclipse中java文件和jsp字体大小设置 1.更改所有文件的字体显示大小过程: Window->preferences->General->Appearance-> ...

  3. 搜索引擎ElasticSearch系列(二): ElasticSearch2.4.4 Head插件安装

    一:ElasticSearch Head插件简介 elasticsearch-head is a web front end for browsing and interacting with an  ...

  4. GitHub中webhooks的使用

    目录 GitHub中的webhooks的配置 对配置的webhooks的进行测试 目前在团队在设计一个应用管理的功能,需要了解到常用代码托管的Webhooks的使用.GitHub中的webhooks首 ...

  5. OpenLDAP介绍

    首先LDAP是一个轻量级的产品(LightWeight),是一个Directory(D),存取的协议(Access Protocol). 我要着重指出,LDAP是一个数据库,但是又不是一个数据库.说他 ...

  6. 【第八章】MySQL数据库备份—逻辑备份

    一.数据库备份 1.命令简介: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql1)关于数据库名: -A, --all-databases       ...

  7. 如何把node更新到最新的稳定版本

    先装n,再用n把node升级到最新稳定版 $ npm install -g n $ n stable

  8. [leetcode-884-Uncommon Words from Two Sentences]

    We are given two sentences A and B.  (A sentence is a string of space separated words.  Each word co ...

  9. ionic 开发实例

    ionic 开发实例 一.ionic初始化项目 1:安装ionic npm install -g ionic 2:初始化项目框架 我们可以用命令创建一个应用程序,可以使用我们的一个现成的应用程序模板, ...

  10. vue之指令篇 ps简单的对比angular

    这两天在开始vue的大型项目,发现和ng还是有许多不同,这里对比下两者的指令系统 难度系数:ng的指令难度大于vue:至少vue上暂时没发现@&=:require,compile,precom ...