<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{margin:0;padding:0;}
.head{font-size:12px;padding:6px 0 0 10px;}
#login_box{width:300px;height:150px;background:#eee;
border:1px solid #ccc;position:absolute;left:50%;top:50%;margin-left:-150px;margin-top:-75px;display:none;}
#login_box p{height:20px;border-bottom:1px solid #ccc;font-size:12px;padding:6px 0 0 5px;font-weight:bold;}
#close{width:14px;height:14px;background:url(close.png) no-repeat;position:absolute;right:4px;top:6px;}
</style>
<script>
window.onload=function(){
var login_btn=document.getElementById("login"),
login_box=document.getElementById("login_box"),
close=document.getElementById("close");
// 封装添加事件监听程序
function addEvent(ele,type,hander){
if(ele.addEventListener){
ele.addEventListener(type,hander,false);
}else if(ele.attachEvent){
ele.attachEvent("on"+type,hander);
}
else{
ele["on"+type]=hander;
}
}
// 执行代码
}
// 显示登录层函数
function showLogin(){
login_box.style.display="block"
// 执行代码
}
// 隐藏登录层函数
function hideLogin(){
login_box.style.display="none"
// 执行代码
}
//点击登录按钮显示登录层
addEvent(Login_btn,"click",showLogin);
// 执行代码
//点击关闭按钮隐藏登录层
addEvent(close,"click",hideLogin);
// 执行代码
</script>
</head>
<body>
<div>亲,您好!<input type="button" value="登 录" id="login"></div>
<div id="login_box">
<p>用户登录</p><span id="close"></span>
</div>
</body>
</html>
1、把你的全部代码复制到编辑器里,第31行,也就是‘}’(window.onload{}的后括号)应该放在addEvent(close,"click",hideLogin);这行代码的后面。使addEvent能够被识别为方法调用。2、还有一个错误,addEvent(Login_btn,"click",showLogin); 中的“Login_btn”单词与上面声明的“login_btn”不一样。像这种长串单词还是ctrl+c、ctrl+v,比较不容易出错。
建议:下次出错学会用浏览器调试工具,在那里发现错误很容易,一些错误会定位错在哪一行,希望可以共同进步。
addEvent(Login_btn,"click",showLogin);
// 显示登录层函数 上面的{ 挪到最后;addEvent(login_btn,"click",showLogin); l是小写