【JavaScript】事件
一、前言
继续上一章的内容,继续今天的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】事件的更多相关文章
- JavaScript事件代理和委托(Delegation)
JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委 ...
- JavaScript事件概览
JavaScript事件 JavaScript是单线程,在同一个时间点,不可能同时运行两个"控制线程". 事件句柄和事件对象 1.注册事件句柄 标准和非标准 var button= ...
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...
- JavaScript 事件
事件 概念:事件是可以被 JavaScript 侦测到的行为. JavaScript 使我们有能力创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触 ...
- JavaScript事件详解-jQuery的事件实现(三)
正文 本文所涉及到的jQuery版本是3.1.1,可以在压缩包中找到event模块.该篇算是阅读笔记,jQuery代码太长.... Dean Edward的addEvent.js 相对于zepto的e ...
- JavaScript事件详解-Zepto的事件实现(二)【新增fastclick阅读笔记】
正文 作者打字速度实在不咋地,源码部分就用图片代替了,都是截图,本文讲解的Zepto版本是1.2.0,在该版本中的event模块与1.1.6基本一致.此文的fastclick理解上在看过博客园各个大神 ...
- 总结JavaScript事件机制
JavaScript事件模型 在各种浏览器中存在三种事件模型: 原始事件模型 , DOM2事件模型 , IE事件模型. 其中原始的事件模型被所有浏览器所支持,而DOM2中所定义的事件模型目前被除了IE ...
- 解析Javascript事件冒泡机制
本资源引自: 解析Javascript事件冒泡机制 - 我的程序人生 - 博客频道 - CSDN.NET http://blog.csdn.net/luanlouis/article/details/ ...
- JavaScript事件流原理解析
一.为什么会有这一篇的文章 国庆前几天由于任务比较重,要赶在国庆前把一个进度的任务开发完成,所以也就有点赶,但是却遇到了一个比较奇怪的Bug,导致了任务比预计的延迟了几个小时,对此深表遗憾,所以利用国 ...
- Javascript事件机制兼容性解决方案
本文的解决方案可以用于Javascript native对象和宿主对象(dom元素),通过以下的方式来绑定和触发事件: 或者 var input = document.getElementsByTag ...
随机推荐
- MySQL数据库之安装,基本操作
一.基础部分 1.数据库是什么 之前所学,数据要永久保留,比如用户注册的用户信息,都是保存于文件,而文件只能存在于某一台机器上. 如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件 ...
- sql 命令使用简单记录
半个月前就想记下用过的SQL命令的!!! 主题: 按时间查询: https://blog.csdn.net/hejpyes/article/details/41863349 左关联: se ...
- ArrayList 源码分析 -- 扩容问题及序列化问题
目录 一.前言二.ArrayList 的继承与实现关系 2.1 ArrayList.java 2.2 抽象类AbstractList.java 2.3 接口List.java ...
- 会声会影2018提示dll文件丢失怎么办?
一些会声会影2018用户,在安装.使用软件的过程中,会出现dll缺失的提示,导致软件无法打开,那么,出现这一问题要怎么解决.接下来小编为大家具体介绍下两种解决方法. 图1:dll丢失提示 打开会声会影 ...
- IO多路复用(二) -- select、poll、epoll实现TCP反射程序
接着上文IO多路复用(一)-- Select.Poll.Epoll,接下来将演示一个TCP回射程序,源代码来自于该博文https://www.cnblogs.com/Anker/p/3258674.h ...
- 在intelij IDEA中添加对jetBrick文件的识别
在intelij IDEA中添加对jetBrick文件的识别 打开setting, 搜索File Types, 在Recognized File Types窗口找到Java Server Page或者 ...
- day-19 多种优化模型下的简单神经网络tensorflow示例
如下样例基于tensorflow实现了一个简单的3层深度学习入门框架程序,程序主要有如下特性: 1. 基于著名的MNIST手写数字集样例数据:http://yann.lecun.com/exdb/m ...
- Pyhone学习之环境搭建
一.python 环境搭建 本章节我们将向大家介绍如何在本地搭建Python开发环境.Python可应用于多平台包括 Linux 和 Mac OS X.你可以通过终端窗口输入 "python ...
- leetcode个人题解——#34 Find First and Last Position of Element in Sorted Array
思路:先二分查找到一个和target相同的元素,然后再左边二分查找左边界,右边二分查找有边界. class Solution { public: , end = -; int ends; int lS ...
- eclipse安装反编译器jad
1.下载net.sf.jadclipse_3.3.0.jar.jadclipse_3.3.0.jar.jad.exe 2.将net.sf.jadclipse_3.3.0.jar放在eclipse的安装 ...