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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于onclick事件

關于onclick事件

Dream0703 2016-08-28 23:36:23
<!DOCTYPE html><html><head>??? <meta charset="UTF-8">??? <title>layer js</title></head><body>??? <div>??????? <div>??????????? <img src="static/images/bg.png" alt="">??????????? <input type="button"onclick="mm()" id="btn" />??????? </div>??????? <div></div>??? </div></body>??? <script type="text/javascript">??????? window.onload=function(){???????????? var btn=document.getElementById("btn");???????????? function mm()?????????? {????????????? ???????????????? var sHeight=document.documentElement.scrollHeight;??????????????? var sWidth=document.documentElement.scrollWidth;??????????????? var mask=document.createElement("div");??????????????? mask.id="omask";??????????????? mask.style.height=sHeight+"px";??????????????? mask.style.width=sWidth+"px";??????????????? document.body.appendChild(mask);??????????????? var oimg=document.createElement("div");??????????????? oimg.id="img";??????????????? oimg.innerHTML="<img src='static/images/bg.png' alt='' />";??????????????? document.body.appendChild(oimg)??????????????? alert("sssss")?????????? ?}??????? }??? </script></html>為什么我把mm函數(shù)寫在window.onload里,點擊按鈕會報錯。說mm()沒定義呢,去掉window.onload就好了
查看完整描述

1 回答

?
stone310

TA貢獻361條經(jīng)驗 獲得超191個贊

這是一個典型的作用域問題,window.onload=function(){}這就是一個外部函數(shù)(函數(shù)作用域),那它里面的變量、函數(shù),超出這個作用域就無效了,是不能被外面直接調(diào)用的,解決辦法

1、封裝函數(shù)(就是你說的把window.onload去掉,所有定義的變量全部放在mm函數(shù)里面)

2、寫一個閉包(就是寫成 return function mm(){},然后外部調(diào)用window.onload()(),兩個括號),非常不推薦,寫的丑亂難看,而且復雜

可以先去了解一下JS的作用域(這個比較簡單而且很重要),再看是否有興趣去了解閉包(個人覺得理解了作用域,閉包也不需要刻意去學)


查看完整回答
2 反對 回復 2016-08-29
  • 1 回答
  • 1 關注
  • 1394 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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