温暖密室
2016-01-23 16:17
这两个是不是同一个意思?定义了函数addHandler()
可能我没有写的全,有些人也没有看到过。视频——DOM事件探秘(2-4 IE事件处理程序及跨浏览器解决)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>事件流</title>
</head>
<body>
<form>
<input type="button" value="按钮" id="btn" onclick="showMessage()">
<input type="button" value="按钮2" id="btn2">
<input type="button" value="按钮3" id="btn3">
</form>
<script>
function showMessage(){
alert("hello world!");
}
var btn2=document.getElementById("btn2");
var btn3=document.getElementById("btn3");
/* btn2.onclick=function(){
alert("hello world!");
}
btn2.onclick=null;
//btn3.addEventListener("click",showMessage,false);
//btn3.removeEventListener("click",showMessage,false);
btn3.attachEvent("onclick",showMessage);
btn3.detachEvent("onclick",showMessage); */
//跨浏览器事件处理程序
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.addEventListener){
element.removeEventListener(type,handler,false);
}
else if(element.attachEvent){
element.detachEvent('on'+type,handler);
}
else{
element['on'+type]=null;
}
}
}
eventutil.addHandler(btn3,"click",showMessage);
eventutil.removeHandler(btn3,"click",showMessage);
</script>
</body>
</html>
以上加粗的部分代码,还有“删除句柄”上面的逗号“,”也有点不理解。
这个addHandler:function(){}是什么?
没见过这种形式,刚试了试,编译不通过,说是有“无意的)”。JavaScript函数两种形式
1.function add(){} 函数定义
2.var add = function(){} 函书表达式
前面带冒号,不知道是我孤陋寡闻,还是楼主打错了,如果是前者,在此请教。
个人理解是不一样。。我认为第一个是函数表达式,第二个是函数声明。
DOM事件探秘
99545 学习 · 1197 问题
相似问题