【js学习笔记-091】-----------注册事件处理程序
来源:互联网 发布:怎么看待网络流行语 编辑:程序博客网 时间:2024/06/05 17:29
注册事件处理程序
两种方式:
一 给事件目标对象或文档元素设置属性
二 更具有通用性,是将事件处理程序传递给对象或元素的一个方法
但是复杂的是,每种技术都有两个版本。可以在js代码中设置事件处理程序为对象属性,或对于文档元素,可以在HTML中直接设置相应属性。对于通过方法调用处理程序注册。有一个标准方法,命名为addEventListener(),除IE8及以前版本之外,所有浏览器都支持这个方式,而IE之前版本支持一个叫attachEvent()的不同方法。
设置js对象属性为事件处理程序
注册事件处理程序最简单的方式就是通过设置事件目标的属性为所需事件处理程序函数。按照约定,事件处理程序属性的名字由”on”后面跟着事件名组成:onclick/onchange/onload/onmouseover等。注意这些属性是区分大小写的,所有都是小写即使有多个单词组成如onreadystatechange。
这种方式的缺点是其设计都是围绕着假设每个事件目标对每种事件类型将最多只有一个处理程序。如果想编写能够在任意文档中都能使用的脚本库代码,更好的方式是使用一种不修改或覆盖任何已有注册程序的技术。
设置html标签属性为事件处理程序
如<button onclick=”alert(‘hello’);”>点我!</button>
如果html事件处理程序属性包含多条js语句,要记住必须使用分号分隔这些语句或断开属性值使其跨多行。
addEventListener()
它接受三个参数。
A. 事件类型,这个事件类型是字符串,但它不应该包括用于设置事件处理程序属性的前缀“on”
B. 当指定类型事件发生时应该调用的函数
C. 布尔值 通常是false,如果设置为true,那么函数注册为捕获事件处理程序
removeEventListener()
同样有三个参数,从对象中删除事件处理程序函数而非添加,它常用于临时注册事件处理程序,然后不久就删除它,例如mousedown事件,可以为mousemove和mouseup事件注册临时捕获事件处理程序来看看用户是否拖动鼠标。当mouseup事件到来后,可以注销这些事件处理程序。
document.removeEventListener(“mousemove”,handleMouseMove,true);
document.removeEventListener(“mouseup”,handleMouseUp,true);
attachEvent()
IE9之前的IE不支持上述的两个方法。IE5及以后版本定义了类似的方法。attachEvent()和detachEvent() 方法原理有类似addEventListener()和removeEventListener()。
但有如下例外:
l 因为IE不支持事件捕获,所以attachEvent()和detachEvent()要求只有两个参数。事件类型和处理程序函数
l IE方法的第一个参数使用了带“on”前缀的事件处理程序属性名,而非没有前缀的事件类型。例如addEventListener()传递”click”而attachEvent()传递“onclick”。
l attachEvent允许相同事件处理程序函数注册多次,当特定的事件类型发生时,注册函数的调用次数和注册次数一样
经常会有这个的事件处理程序写法
var b =document.getElementById(“mybutton”);
var handler = function(){alert(“thanks!”);};
if(b.addEventListener)
b. addEventListener(“click”, handler,false);
else if(b.attachEvent)
b. attachEvent(“onclick”, handler);
- 【js学习笔记-091】-----------注册事件处理程序
- 【js学习笔记-092】-----事件处理程序的调用
- JS高程学习笔记——事件处理程序
- js学习笔记:事件——事件流、事件处理程序、事件对象
- 注册事件处理程序
- 【学习笔记八】- JS 冒泡与捕获(事件流+事件处理程序+事件对象)
- 【js学习笔记-090】---事件处理
- js学习笔记之事件处理模型
- JavaScript事件处理程序 学习笔记
- HTML学习笔记之事件处理程序
- android学习笔记(17)广播事件处理进阶(注册方法)
- js 事件处理程序
- JS-事件处理程序
- JS事件处理程序
- js--事件--事件处理程序
- js--事件--事件处理程序
- JS笔记【归纳】:DOM中的事件处理程序
- JS事件-事件处理程序之IE事件处理程序
- 第四章 Controller接口控制器详解(5)——跟着开涛学SpringMVC
- 实验16
- Themedy Thesis & Genesis Skin Club
- 第四章 Controller接口控制器详解(6)——跟着开涛学SpringMVC
- 第四章 Controller接口控制器详解(7)——跟着开涛学SpringMVC
- 【js学习笔记-091】-----------注册事件处理程序
- 第五章 处理器拦截器详解——跟着开涛学SpringMVC
- 注解式控制器运行流程及处理器定义 第六章 注解式控制器详解——跟着开涛学SpringMVC
- 个人总结感想系列 - 2013年工作和生活总结
- jdk的安装过程
- SpringMVC3强大的请求映射规则详解 第六章 注解式控制器详解——跟着开涛学SpringMVC
- 5分钟构建spring web mvc REST风格HelloWorld
- OC与Category 分类
- LNMP搭建笔记③之编译安装nginx