DOM事件处理程序

addEventListener() 和 removeEventListener(),

所有 DOM 节点中都包含这两个方法,并且它们都接受 3 个参数:

  1. 要处 理的事件名、
  2. 作为事件处理程序的函数
  3. 一个布尔值。最后这个布尔值参数如果是 true,表示在捕获 阶段调用事件处理程序;如果是 false,表示在冒泡阶段调用事件处理程序。
var btn = document.getElementById("myBtn");
var handler = function(){
 alert(this.id);
};
btn.addEventListener("click", handler, false);
//这里省略了其他代码
btn.removeEventListener("click", handler, false); //有效!

添加的事件处理程序是在其依附的元素的作用域 中运行

可以添加多个事件,按顺序先后触发。

第二个参数不可用匿名函数,不然两个方法指向不是同一个函数,传入 removeEventListener()中的事件处理程序函数必须与传入 addEventListener()中的相同

IE中的事件处理程序  attachEvent()和 detachEvent(),接收2个参数

  1. 事件处理程序名称
  2. 事件处理程序函数

在 IE 中使用 attachEvent()与使用 DOM0 级方法的主要区别在于事件处理程序的作用域。在使 用 DOM0 级方法的情况下,事件处理程序会在其所属元素的作用域内运行;在使用 attachEvent()方 法的情况下,事件处理程序会在全局作用域中运行,因此 this 等于 window。

var btn = document.getElementById("myBtn");
btn.attachEvent("onclick", function(){
 alert(this === window); //true
}); 

与 DOM 方法不同的是,这些事件处理程序不是以添加它们的顺序执行,而是以相反的顺序被触发,先输出Hello world!在输出clicked

var btn = document.getElementById("myBtn");
btn.attachEvent("onclick", function(){
 alert("Clicked");
});
btn.attachEvent("onclick", function(){
 alert("Hello world!");
}); 
时间: 2024-10-20 15:56:01

DOM事件处理程序的相关文章

javascript将DOM事件处理程序封装为event.js 出现的低级错误记录

将 DOM 0级事件处理程序和DOM2级事件处理程序 IE事件处理程序封装为eventUtil对象,达到跨浏览器的效果.代码如下: var eventUtil = { // 添加事件句柄 addEventHandler:function (element,type,handler) { if (element.addEventListener) { element.addEventListener(type, handler,false); }else if(element.attachEven

DOM事件处理程序-事件对象-键盘事件

事件流: 事件流--描述的是从页面中接受事件的顺序 IE  ---事件冒泡流:即事件最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播至最不具体的那个节点(文档). Netscape  ---事件捕获流:不太具体的节点应该更早接收到事件,而最具体的节点最后接收到事件. 使用事件处理程序: 1. HTML事件处理程序 <input type="button" value="按钮" id="btn" onclick=&q

指定事件处理程序的几种方式

通过指定事件处理程序可以侦听事件的发生并对其作出响应,已达到某种交互目的.那么指定事件处理程序的方式有哪些呢? 比如有以下代码: <input id="btn" type="button" value="click me" /> 要求为按钮指定一个单击事件处理程序,即单击按钮时输出相应信息. 1.HTML事件处理程序 某个元素支持的每种事件,都可以使用一个与相应事件处理程序同名的HTML特性来指定.特性的值可以是能够执行的js代码.

JS:Html事件处理程序 vs DOM0级事件处理程序 vs DOM2级事件处理程序

1.HTML事件处理程序 某个元素支持的某种事件,可以通过一个与相应事件处理程序同名的HTML特性指定.这个特性的值应该是能够执行的JS代码.例如:按钮单击是要执行一些js代码,可以像下面: <input type="button" value="click me" onclick="showMessage()" /> 在js中就可以像下面一样处理: <script> function showMessage(){ ale

JS学习笔记(一)DOM事件和监听

将事件绑定到元素身上的三种方法: 1.HTML事件处理程序(不推荐使用) 1 <a onclick="hide()"> 2.传统的DOM事件处理程序 即在目标DOM事件的基础上绑定事件.如果在声明函数时加上括号,函数会立即调用,去掉括号,函数不会立即调用. 1 function change(){ 2 //code 3 } 4 var name = document.getElementById("name"); 5 name.onclick = cha

JavaScript&amp;jQuery.DOM事件

DOM事件 在JavaScript中常见的事件有: UI事件,当与浏览器UI本身(而不是网页)交互时发生的事件. 鼠标事件,当用户操作鼠标.触控板.或触摸屏幕时发生. 键盘事件,当用户操作键盘时发生. 焦点事件,当一个元素(比如链接或表单)得到或失去焦点时发生. 表单事件,当用户与表单元素进行交互时发生. 变动事件,当用户修改了DOM结构(添加或删除元素节点)后发生. DOM事件如何触发javaScript代码 对象有属性.方法.事件 本质上他们是同一个东西:属性=方法=事件. 事件->方法->

IE attachEvent事件处理程序(事件绑定的函数)的this指向的是window不是执行当前事件的dom元素

IE attachEvent事件处理程序(事件绑定的函数)的this指向的是window不是执行当前事件的dom元素. attachEvent(type,listener); listener函数中的this不是指向执行当前事件的dom而是window切记,感觉这一点IE做的太奇怪了!

DOM事件探秘之事件流与事件处理程序

1.事件流:描述的是从页面中接受事件的顺序 ①.事件冒泡流:即时间最开始由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播至最不具体的那个节点(文档).      栗子:若<body><div><input type="button"/></div></body>次结构,点击按钮时,默认点了按钮的容器 默认点了body,默认点了html,默认点了document. ②.事件捕获:不太具体的节点应该更早接收到事

深入理解DOM事件机制系列第二篇——事件处理程序

× 目录 [1]HTML [2]DOM0级 [3]DOM2级[4]IE[5]总结 前面的话 事件处理程序又叫事件侦听器,实际上就是事件的绑定函数.事件发生时会执行函数中相应代码.事件处理程序有HTML事件处理程序.DOM0级事件处理程序.DOM2级事件处理程序和IE事件处理程序四类,下面将详细介绍该部分内容 HTML事件处理程序 某个元素支持的每种事件,都可以使用一个与相应事件处理程序同名的HTML特性来指定.这个特性的值应该是能够执行的JavaScript代码 在事件处理程序函数内部,this