在javascript中我们可以为一个按钮注册多个事件,如果我们使用的是button.οnclick=函数1,button.οnclick=函数2的话,那么函数二就会把函数一给覆盖掉,这时候我们就需要使用其他方法了。
ie中: 使用 attachEvent("onclick",fn1); 来注册事件
使用detachEvent("onclick",fn1); 来注销事件
火狐中: 使用addEventListener("click",fn1);来注册事件
使用removeEventListener("click",fn2);来注销事件
下面是测试代码:
当我们点击按钮的时候,会连续响应多个事件。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function fn1()
{
alert("我是事件1");
}
function fn2()
{
alert("我是事件2");
}
function fn3()
{
alert("我是事件3");
}
window.onload =function(){
var btn1 = document.getElementById("btn1");
//ie中绑定事件的方法
if(document.attachEvent)
{
btn1.attachEvent("onclick",fn1);
btn1.attachEvent("onclick",fn2);
btn1.attachEvent("onclick",fn3);
//移除事件
btn1.detachEvent("onclick",fn1);
}
//火狐中的方法
else
{
btn1.addEventListener("click",fn1);
btn1.addEventListener("click",fn2);
btn1.addEventListener("click",fn3);
btn1.removeEventListener("click",fn2);
}
}
</script>
</head>
<body>
<input type="button" id="btn1" value="多事件监听按钮"/>
</body>
</html>