為什么addEvent監聽會立即執行呢
<!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;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');
????????????var??login_box1=?document.getElementById('login_box');
????????????var???close1?=?document.getElementById('close');
????????????//?封裝添加事件監聽程序
?function?addEvent(ele,?type,?hander)?{
????????????????if?(ele.addEventListener)?{
????????????????????//谷歌
?ele.addEventListener(type,?hander,?false);
????????????????}?else?if?(ele.attachEvent)?{
????????????????????ele.attachEvent('on'?+?type,?handler);
????????????????}?else?{
????????????????????ele['on'?+?type]?=?handler;
????????????????}
????????????}
????????????//?顯示登錄層函數
?function?showLogin()?{
????????????????//?執行代碼
?login_box1.style.display?=?'block'
?}
????????????//?隱藏登錄層函數
?function?hideLogin()?{
????????????????//?執行代碼
?login_box1.style.display?=?'none';
????????????}
????????????//點擊登錄按鈕顯示登錄層
????????????//?執行代碼
?addEvent(login_box1,?'click',?showLogin());
????????????//點擊關閉按鈕隱藏登錄層
????????????//?執行代碼
?addEvent(close1,?'click',?hideLogin());
????????}
????</script>
</head>
<body>
<div?class="head">親,您好!<input?type="button"?value="登?錄"?id="login"></div>
<div?id="login_box">
????<p>用戶登錄</p><span?id="close"></span>
</div>
</body>
</html>初始化的時候問什么就會執行addEvent這兩個呢
2018-08-10
感覺是這里寫錯了,把handler寫在前面,應該可以了吧
2018-07-25
2018-06-09
中showLogin()的括號去掉試一下?是不是就不執行了?