第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

為什么JS必須全部寫在window.onload中,頁面才能實(shí)現(xiàn)?

<!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:0;right:0;top:0;bottom:0;margin:auto;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;position:absolute;right:4px;top:6px;cursor:pointer;}

</style>

<script>

? ? ? window.onload = function(){

? ? ? ?var login_btn=document.getElementById('login'),

? ? ? ? ? ?login_box=document.getElementById('login_box'),

? ? ? ? ? ?close=document.getElementById('close');

? ? ? ? ? ? ?

? ? ? ?// 封裝添加事件監(jiān)聽程序

? ? ? ? var eventUtil = {

? ? ? ? ? addHandler:function(ele,type,hander) {

? ? ? ? ? ?// 執(zhí)行代碼 ?

? ? ? ? ? ?if (ele.addEventListener) {

? ? ? ? ? ? ? ?ele.addEventListener(type,hander,false);

? ? ? ? ? ?}

? ? ? ? ? ?else if (ele.attachEvent) {

? ? ? ? ? ? ?ele.attachEvent("on"+type,hander); ? ?

? ? ? ? ? ?}

? ? ? ? ? ?else {

? ? ? ? ? ? ? ?ele["on"+type] = hander;

? ? ? ? ? ?}

? ? ? ?}

? ? ? ? }

? ? ?

??

? ? ? ? // 顯示登錄層函數(shù)

? ? ? ?function showLogin() {

? ? ? ?// 執(zhí)行代碼

? ? ? ? ? ? ? login_box.style.display = "block";

? ? ? ? }

? ? ? ? // 隱藏登錄層函數(shù)

? ? ? ? ?function hideLogin() {

? ? ? ? ? // 執(zhí)行代碼

? ? ? ? ? login_box.style.display = "none";

? ? ? ? }

? ? ?

? ? ? ? //點(diǎn)擊登錄按鈕顯示登錄層?

? ? ? ? // 執(zhí)行代碼

? ? ? ? eventUtil.addHandler(login_btn,"click",showLogin);

? ? ? ? eventUtil.addHandler(close,"click",hideLogin);

? ? ? ? //點(diǎn)擊關(guān)閉按鈕隱藏登錄層

? ? ? ? // 執(zhí)行代碼

? ? ? ?}

</script>

</head>

<body>

<div>親,您好!<input type="button" value="登 錄" id="login"></div>

<div id="login_box">

<p>用戶登錄</p><span id="close">X</span>

? ? ? ? <div style="display:table;margin:20px ;">

? ? ? ? <div style="display:table-row">

? ? ? ? <span style="display:table-cell;text-align:right;vertical-align:middle;">用戶名:</span><span style="display:table-cell;"><input type="text" placeholder="請輸入用戶名" style="height:50px;"></span>

? ? ? ? </div>

? ? ? ? <div style="display:table-row">

? ? ? ? <span style="display:table-cell;text-align:right;vertical-align:middle;">密碼:</span><span style="display:table-cell"><input type="text" placeholder="請輸入密碼"></span>

? ? ? ? </div>

? ? ? ? </div>

</div>

</body>

</html>


望大神指點(diǎn),謝謝?。?/p>

正在回答

3 回答

好好學(xué)學(xué)加載機(jī)制呀....window.onload的意思是等頁面完全加載完畢的意思,如果你不寫這句的話,你的頁面DOM節(jié)點(diǎn)還沒有加載上,你的js就已經(jīng)在運(yùn)行了,可能就找不到節(jié)點(diǎn),還有現(xiàn)在一般都不用window.onload這個(gè)方法,你可以查一查。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

自律讓人自由4008941 提問者

非常感謝!
2016-11-25 回復(fù) 有任何疑惑可以回復(fù)我~

如果不用onload的話,需要吧script從div之前移動到div之后,也就是先把html畫出來在取html的元素,不然就會出現(xiàn)問題。我的代碼供參考:

<!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?type="text/javascript"?src="JS/evenUtil.js"></script>
???
</head>
<body>
????<div?class="head">親,您好!<input?type="button"?value="登?錄"?id="login"></div>
????<div?id="login_box">
????????<p>用戶登錄</p><span?id="close"></span>
????</div>
?<script>
????var?login_btn=document.getElementById('login'),
????????login_box=document.getElementById('login_box'),
????????close=document.getElementById('close');
????//?封裝添加事件監(jiān)聽程序
????var?myFunc={
????????addEvent:function(e,type,handler){
???????????//?執(zhí)行代碼??
???????????if(e.addEventListener){
????????????????e.addEventListener(type,handler,false);
????????????//判斷IE事件
????????????}else?if(e.attachEvent){
????????????????e.attachEvent("on"+type,handler);
????????????//如果都不支持則使用DOM0級
????????????}else{
????????????????//[]完全等價(jià)于'.',只能用[]
????????????????e["on"+type]=handler;
????????????}
????????},
????????//?顯示登錄層函數(shù)
????????showLogin:function(){
????????????//?執(zhí)行代碼
????????????login_box.style.display?=?"block";
????????},
????????//?隱藏登錄層函數(shù)
????????hideLogin:function(){
??????????//?執(zhí)行代碼
????????????login_box.style.display?=?"none";
????????}
????????//點(diǎn)擊登錄按鈕顯示登錄層?
????????//?//?執(zhí)行代碼
????????//?addEvent(login_btn,"click",showLogin);
????????//?//點(diǎn)擊關(guān)閉按鈕隱藏登錄層
????????//?//?執(zhí)行代碼
????????//?addEvent(close,"click",hideLogin);
????????}

????myFunc.addEvent(login_btn,"click",myFunc.showLogin);
????????//點(diǎn)擊關(guān)閉按鈕隱藏登錄層
????????//?執(zhí)行代碼
????myFunc.addEvent(close,"click",myFunc.hideLogin);
????</script>
</body>
</html>


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

EasonWong

<script type="text/javascript" src="JS/evenUtil.js"></script> 這句是我測試導(dǎo)入之前課上的方法,但實(shí)際沒有用到。可以去掉
2016-11-25 回復(fù) 有任何疑惑可以回復(fù)我~
#2

自律讓人自由4008941 提問者

謝謝~已經(jīng)明白了~剛學(xué)2個(gè)星期JavaScript 好多都不懂
2016-11-25 回復(fù) 有任何疑惑可以回復(fù)我~

誰說的必須要寫window.onload.這樣寫只是方便加載頁面的時(shí)候就會執(zhí)行,你還有給按鈕添加點(diǎn)擊事件等方法啊

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

自律讓人自由4008941 提問者

這種方式寫得話,我如果不全部寫在window.onload里就報(bào)錯(cuò)eventUtil無效
2016-11-20 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么JS必須全部寫在window.onload中,頁面才能實(shí)現(xiàn)?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號