<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="box">
<input type="button" value="按钮" id="btn" onclick="alert('hello')">
<input type="button" value="按钮2" id="btn2">
<input type="button" value="按钮3" id="btn3">
</div>
<script>
//DOM0事件
function showMes(){
alert('hello world!');
}
var btn2=document.getElementById('btn2');
var btn3=document.getElementById('btn3');
btn2.onclick=function(){
alert('这是通过DOM0级添加的事件。')
}
btn2.onclick=null;//删除属性
//DOM2级事件
/* btn3.addEventListener('click',showMes,false);
btn3.addEventListener('click',function(){
alert(this.value);
},false);
//删除事件
btn3.removeEventListener('click',showMes,false);*/
//跨浏览器事件处理程序
var eventUtil= {
//添加句柄
addHandler: function (element,type,handler) {
if (element.addEventListener()) {
element.addEventListener(type,handler,false);
} else if (element.attachEvent()) {
element.attachEvent('on'+type,handler)
} else {
element['on'+type] = handler;
}
},
//删除句柄
removeHandler: function (element,type,handler) {
if (element.removeEventListener()) {
element.removeEventListener(type,handler,false);
} else if (element.detachEvent()) {
element.detachEvent('on'+type,handler)
} else {
element['on'+type] = null;
}
}
}
eventUtil.addHandler(btn3,'click',showMes());
</script>
</body>
</html>
我明白了 是if判断的监听事件不能加括号 因为那是判断属性 不是方法
最后的showMes()把括号去掉???
eventUtil.addHandler(btn3,'click',showMes()); 改为:eventUtil.addHandler(btn3,'click',showMes);