一个javascript参数的小问题_javascript技巧
程序员文章站
2022-04-24 17:04:23
...
以下是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 xpos+=10
}
if (xpos > 480){
xpos-=10
}
if (ypos ypos+=10
}
if (ypos > 80){
ypos-=10
}
layer.style.width = xpos + "px";
layer.style.height = ypos + "px";
movement = setTimeout("animation()",0);
}
以下是html
问题
如果使用参数layer1、layer2、layer3、layer4,则每次都不成功,提示'layername' is undefined
如果将javascript里的layername换成div的id值就能成功,但如果这样javascript程序就会很多
请问怎样才能正确的使用参数的形式?
解决方法:
movement = setTimeout("animation()",0)
这个地方没有给animation()传参数过去
而定义的animation()函数也没有接受参数,但是又用
var layer = document.getElementById(layername);
来接收layername 这个变量
错误地理解了闭包?想从 function show(layername) 这个函数接收参数???
定时器好像没有丝毫作用
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 xpos+=10
}
if (xpos > 480){
xpos-=10
}
if (ypos ypos+=10
}
if (ypos > 80){
ypos-=10
}
layer.style.width = xpos + "px";
layer.style.height = ypos + "px";
movement = setTimeout("animation()",0);
}
以下是html
问题
如果使用参数layer1、layer2、layer3、layer4,则每次都不成功,提示'layername' is undefined
如果将javascript里的layername换成div的id值就能成功,但如果这样javascript程序就会很多
请问怎样才能正确的使用参数的形式?
解决方法:
movement = setTimeout("animation()",0)
这个地方没有给animation()传参数过去
而定义的animation()函数也没有接受参数,但是又用
var layer = document.getElementById(layername);
来接收layername 这个变量
错误地理解了闭包?想从 function show(layername) 这个函数接收参数???
定时器好像没有丝毫作用
上一篇: 分享一个Request对象小案例
下一篇: php session应用实例 登录验证
推荐阅读
-
Node.js实战 建立简单的Web服务器_javascript技巧
-
Google排名中的10个最著名的 JavaScript库_javascript技巧
-
IE浏览器中图片onload事件无效的解决方法_javascript技巧
-
js实现格式化金额,字符,时间的方法_javascript技巧
-
js控制iframe的高度/宽度让其自适应内容_javascript技巧
-
js实现瀑布流的一种简单方法实例分享_javascript技巧
-
在多个页面使用同一个HTML片段的代码_javascript技巧
-
Json字符串转换为JS对象的高效方法实例_javascript技巧
-
Javascript调试脚本的经验之谈_javascript技巧
-
jQuery及JS实现循环中暂停的方法_javascript技巧