一、前言

        继续上一章的内容,继续今天的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. 9.14 DP合集水表

    9.14 DP合集水表 关键子工程 在大型工程的施工前,我们把整个工程划分为若干个子工程,并把这些子工程编号为 1. 2. --. N:这样划分之后,子工程之间就会有一些依赖关系,即一些子工程必须在某 ...

  2. dotweb now released to Version 1.5

    dotweb released to Version 1.5!!https://github.com/devfeel/dotweb What's new? 重要:go版本适配升级为1.9+ New f ...

  3. python全栈开发- 前⽅⾼能-迭代器

    python_day_12 今日主要内容 1, 函数名的应用,第一类对象 函数名可以像变量一样进行使用 1.赋值 2.作为list元素 3.作为参数 4.作为返回值 2, 闭包 内部函数访问外部函数的 ...

  4. new表达式,operator new和placement new介绍

    new/delete是c++中动态构造对象的表达式 ,一般情况下的new/delete都是指的new/delete表达式,这是一个操作符,和sizeof一样,不能改变其意义. new/delete表达 ...

  5. php+MySQL的对用户表分表,使用户均匀分布

    假如说我们目前已有一亿个注册用户,要把这些用户平均分配到100张表中,并且后续注册的用户也要均匀分配到这100张表 首先当用户注册时,如用户名为“username”,用php的crc32()函数处理用 ...

  6. JMeter测试WebSocket的经验总结

    最近有一个微信聊天系统的项目需要性能测试,既然是测试微信聊天,肯定绕不开websocket接口的测试,首选工具是Jmeter,网上能搜到现成的方法,但是网上提供的jar包往往不是最新的,既然是用最新版 ...

  7. 图 -数据结构(C语言实现)

    读数据结构与算法分析 坑!待填! 若干定义 一个图G = (V , E)由顶点集V和边集E组成,每条边就是一个点对 如果点对是有序的,那么就叫做有向图 边可能还具有第三种成分,权值 无向图种从每个顶点 ...

  8. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 四

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  9. libCurl 初步认识 - cur easy

    cur easy接口简洁明了,主接口4个,辅接口5个. 主接口 初始化 + 配参数 + 执行 + 销毁 初始化 CURL* curl_easy_init() 获得CURL句柄,返回值需要判空. 配参数 ...

  10. JAVA学习笔记--简介几个常见关键字static、final、this、super

    一.static static(静态的),可以放在类.方法.字段之前. 通常,当创建类时,就是在描述那个类的外观与行为.除非用 new 创建那个类的对象,否则,实际上并未获得任何对象.执行 new 来 ...