ypc8272805
2016-07-22 19:26
我一开始以为是span标签不能添加click事件 换成input也不行
<!doctype html><html lang="en"><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;}
#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);
hideLogin(close, 'click', hideLogin);
//点击关闭按钮隐藏登录层
// 执行代码
}
</script></head><body>
<div class="head">亲,您好!<input type="button" value="登 录" id="login"></div>
<div id="login_box">
<p>用户登录</p><input type="button" value="x" id="close">
</div></body></html>
hideLogin(close, 'click', hideLogin);这段代码错误 应该改成 addEvent(close, 'click', hideLogin);
另外你的 #login_box样式应该开始就要把他隐藏 使用display:none
代码没错,鉴定完毕
addEvent(login_btn, 'click', showLogin);
hideLogin(close, 'click', hideLogin);这两个要在window加载里面调用才行,不然,页面先执行这里,运行到内存中,发现addEvent()函数还没有定义,自然没有效果,加载不上
DOM事件探秘
99545 学习 · 1197 问题
相似问题