<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
var theP; //P标签对象
var show=function(msg){ //直接定义 function show(msg) 效果是一样的
return function(){
alert(msg+" from show()");
if(window.addEventListener){ //FF etc.
theP.removeEventListener("click", theP.show11, false);
}
else{ //IE
theP.detachEvent("onclick", theP.show11);
}
}
}
var show2=function(msg){ //直接定义 function show2(msg) 效果是一样的
return function(){
alert(msg+" from show2()");
}
}
function showDef(){
alert("showDef()");
if(window.addEventListener){ //FF etc.
theP.removeEventListener("click", showDef, false);
}
else{ //IE
theP.detachEvent("onclick", showDef);
}
}
window.onload=function(){
theP=document.getElementById("pid");
theP.show11=show("可以detach的带参数方法");
if(window.addEventListener) // not IE
{
//for FF.etc
theP.addEventListener("click", theP.show11, false);
theP.addEventListener("click", showDef, false);
}
else
{
//for IE
theP.attachEvent("onclick", theP.show11);
theP.attachEvent("onclick", show2('不能detach的带参数方法'));//区别于上一个,这里不能detach
theP.attachEvent("onclick", showDef); //无参数的方法直接写
}
}
</script>
</head>
<body >
<div >
<p id="pid">Click Me</p>
</div>
</body>
</html>