亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么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這兩個呢

正在回答

3 回答

ele['on'?+?type]?=?handler;

感覺是這里寫錯了,把handler寫在前面,應該可以了吧

0 回復 有任何疑惑可以回復我~
addEvent(ele,?type,?hander)這個函數用錯了。這里hander指的是傳入一個函數名,也就是不要帶圓括號,這里不是調用函數。


0 回復 有任何疑惑可以回復我~
addEvent(login_box1,?'click',?showLogin());

中showLogin()的括號去掉試一下?是不是就不執行了?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么addEvent監聽會立即執行呢

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號