一個(gè)javascript參數(shù)的小問(wèn)題
更新時(shí)間:2008年03月02日 14:15:31 作者:
一個(gè)javascript參數(shù)的小問(wèn)題
以下是javascript
function show(layername){
if (!document.getElementById) return false;
if (!document.getElementById(layername)) return false;
var layer = document.getElementById(layername);
layer.style.width = "0px";
layer.style.height = "0px";
layer.style.display = "block";
movement = setTimeout("animation()",0)
}
function animation(){
if (!document.getElementById) return false;
if (!document.getElementById(layername)) return false;
var layer = document.getElementById(layername);
var xpos = parseInt(layer.style.width);
var ypos = parseInt(layer.style.height);
if (xpos == 480 && ypos == 80){
return true;
}
if (xpos < 480){
xpos+=10
}
if (xpos > 480){
xpos-=10
}
if (ypos < 80){
ypos+=10
}
if (ypos > 80){
ypos-=10
}
layer.style.width = xpos + "px";
layer.style.height = ypos + "px";
movement = setTimeout("animation()",0);
}
以下是html
<div id="">
<ul>
<li id="myfriends"> <a href="#" onmouseover="show('layer1');">我的好友</a></li>
<li id="mydocument"> <a href="#" onmouseover="show('layer2');">我的資料</a></li>
<li id="myalbum"> <a href="#" onmouseover="show('layer3');">我的相冊(cè)</a></li>
<li id="myarticles"> <a href="#" onmouseover="show('layer4');">我的文章</a></li>
</ul>
</div>
<div id="layer1" class="clearfloat"> </div>
<div id="layer2" class="clearfloat"> </div>
<div id="layer3" class="clearfloat"> </div>
<div id="layer4" class="clearfloat"> </div>
問(wèn)題
如果使用參數(shù)layer1、layer2、layer3、layer4,則每次都不成功,提示'layername' is undefined
如果將javascript里的layername換成div的id值就能成功,但如果這樣javascript程序就會(huì)很多
請(qǐng)問(wèn)怎樣才能正確的使用參數(shù)的形式?
解決方法:
movement = setTimeout("animation()",0)
這個(gè)地方?jīng)]有給animation()傳參數(shù)過(guò)去
而定義的animation()函數(shù)也沒有接受參數(shù),但是又用
var layer = document.getElementById(layername);
來(lái)接收l(shuí)ayername 這個(gè)變量
錯(cuò)誤地理解了閉包?想從 function show(layername) 這個(gè)函數(shù)接收參數(shù)???
定時(shí)器好像沒有絲毫作用
function show(layername){
if (!document.getElementById) return false;
if (!document.getElementById(layername)) return false;
var layer = document.getElementById(layername);
layer.style.width = "0px";
layer.style.height = "0px";
layer.style.display = "block";
movement = setTimeout("animation()",0)
}
function animation(){
if (!document.getElementById) return false;
if (!document.getElementById(layername)) return false;
var layer = document.getElementById(layername);
var xpos = parseInt(layer.style.width);
var ypos = parseInt(layer.style.height);
if (xpos == 480 && ypos == 80){
return true;
}
if (xpos < 480){
xpos+=10
}
if (xpos > 480){
xpos-=10
}
if (ypos < 80){
ypos+=10
}
if (ypos > 80){
ypos-=10
}
layer.style.width = xpos + "px";
layer.style.height = ypos + "px";
movement = setTimeout("animation()",0);
}
以下是html
<div id="">
<ul>
<li id="myfriends"> <a href="#" onmouseover="show('layer1');">我的好友</a></li>
<li id="mydocument"> <a href="#" onmouseover="show('layer2');">我的資料</a></li>
<li id="myalbum"> <a href="#" onmouseover="show('layer3');">我的相冊(cè)</a></li>
<li id="myarticles"> <a href="#" onmouseover="show('layer4');">我的文章</a></li>
</ul>
</div>
<div id="layer1" class="clearfloat"> </div>
<div id="layer2" class="clearfloat"> </div>
<div id="layer3" class="clearfloat"> </div>
<div id="layer4" class="clearfloat"> </div>
問(wèn)題
如果使用參數(shù)layer1、layer2、layer3、layer4,則每次都不成功,提示'layername' is undefined
如果將javascript里的layername換成div的id值就能成功,但如果這樣javascript程序就會(huì)很多
請(qǐng)問(wèn)怎樣才能正確的使用參數(shù)的形式?
解決方法:
movement = setTimeout("animation()",0)
這個(gè)地方?jīng)]有給animation()傳參數(shù)過(guò)去
而定義的animation()函數(shù)也沒有接受參數(shù),但是又用
var layer = document.getElementById(layername);
來(lái)接收l(shuí)ayername 這個(gè)變量
錯(cuò)誤地理解了閉包?想從 function show(layername) 這個(gè)函數(shù)接收參數(shù)???
定時(shí)器好像沒有絲毫作用
相關(guān)文章
原生js實(shí)現(xiàn)拖拽移動(dòng)與縮放效果
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)拖拽移動(dòng)與縮放效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08移動(dòng)端JS實(shí)現(xiàn)拖拽兩種方法解析
這篇文章主要介紹了移動(dòng)端JS實(shí)現(xiàn)拖拽兩種方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10javascript和jquery實(shí)現(xiàn)用戶登錄驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了javascript和jquery分別實(shí)現(xiàn)用戶登錄驗(yàn)證的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05如何用JavaScript動(dòng)態(tài)呼叫函數(shù)(兩種方式)
下面介紹一下動(dòng)態(tài)呼叫函數(shù)目前應(yīng)該有下面兩種方式,它們之間的使用及對(duì)比,感興趣的朋友可以研究下,希望可以幫助到你2013-05-05詳解js location.href和window.open的幾種用法和區(qū)別
這篇文章主要介紹了詳解js location.href和window.open的幾種用法和區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12記錄一篇關(guān)于redux-saga的基本使用過(guò)程
這篇文章主要介紹了記錄一篇redux-saga的基本使用過(guò)程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08javascript設(shè)置金額樣式轉(zhuǎn)換保留兩位小數(shù)示例代碼
本文為大家介紹下javascript設(shè)置金額樣式即保留兩位小數(shù),下面有個(gè)不錯(cuò)的教程,需要的朋友可以了解下2013-12-12