JS DOM事件处理程序

实验代码:
给button标签添加点击事件处理程序。

<script>

function onClick() {

alert("hello");

}

</script>

<button id="btn">测试</button>


1、HTML事件处理程序

<button id="btn" οnclick="onClick()">测试</button>

这种方式添加处理程序,js代码和html耦合,不利于维护,实际开发中,不推荐用。

2、DOM0级事件处理程序

var btn = document.getElementById("btn);

btn.οnclick=onClick(); //添加事件

//btn.οnclick=null; //移除事件

3、DOM2级事件处理程序

使用addEventListener函数添加事件处理程序。

 该函数总共有三个参数,第一个参数为事件名称,比如点击事件'click', 第二个参数为事件处理函数,第三个参数一个boolean类型。当为false时为冒泡获取(由里向外),true为capture方式(由外向里)

var btn=document.getElementById("btn);

btn.addEventListener("click", onClick, false); //添加事件

//btn.removeEventListener("click", onClick, false); //移除事件

注意:

移除事件时,参数必须和添加事件的参数一致,且不能删除匿名事件处理函数。

4、IE事件处理程序

attachEvent: 添加事件处理函数
detachEvent: 移除事件处理函数

var btn=document.getElementById("btn);

btn.attachEvent ("click", onClick); //添加事件

//btn.detachEvent("click", onClick); //移除事件

编写一个跨浏览器的事件添加和移除的工具。

var eventUtil = {
//添加事件处理程序
addHandler: function(elem, type, handler) {
	if (elem.addEventListener) {
	<span style="white-space:pre">	</span>elem.addEventListener(type, handler, false);
	}
	else if (elem.attachEvent) {
		elem.attachEvent("on" + type, handler);
	}
	else {
		elem['on' + type] = handler;
	}
	},
	//移除事件处理程序
	removeHandler: function(elem, type, handler) {
		if (elem.removeEventListener) {
			elem.removeEventListener(type, handler, false);
		}
		else if (elem.detachEvent) {
			elem.detachEvent("on" + type, handler);
		}
		else {
			elem['on' + type] =  null;
		}
	}
};



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值