為什么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()的括號去掉試一下?是不是就不執行了?