function moveElement(elementID,final_x,final_y,interval) {
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if(xpos == final_x && ypox == final_y){
return true;
}
if(xpos < final_x){
xpos++;
}
if(xpos > final_x){
xpos--;
}
if(ypos < final_y){
ypos++;
}
if(ypos > final_y){
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
movement = setTimeout("moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")",interval);
}
为什么"moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"
为什么这条语句里中变量要加"+"号和双引号啊?
而且还要给它ID加单引号..去掉的话就会无效.为什么啊?
var elem = document.getElementById(elementID);
var xpos = parseInt(elem.style.left);
var ypos = parseInt(elem.style.top);
if(xpos == final_x && ypox == final_y){
return true;
}
if(xpos < final_x){
xpos++;
}
if(xpos > final_x){
xpos--;
}
if(ypos < final_y){
ypos++;
}
if(ypos > final_y){
ypos--;
}
elem.style.left = xpos + "px";
elem.style.top = ypos + "px";
movement = setTimeout("moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")",interval);
}
为什么"moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"
为什么这条语句里中变量要加"+"号和双引号啊?
而且还要给它ID加单引号..去掉的话就会无效.为什么啊?
解决方案 »
- 网站滚动栏
- 表格嵌套,Jquery取值问题
- 请问这种源码里面的单词变色时如何实现的呢?(有图)
- 改个名字,怎么不行了?
- 请教:csdn的导航树问题。
- 求一完整的js只加密函数,变量的功能代码
- 怎么才能在ie的上加一个我自己的状态栏??用程序来写,好象用vbscript写的!!急救
- 在响应事件时如何得到鼠标的位置?
- 有关两个下拉列表框的问题:第一个列表框显示大类(调数据库),而当第一个列表框变化的时候第二个列表框显示小类(调数据库),怎样才能实现?(
- someNode is not defined ,刚学习Node就遇到这个问题,我看的是javascript高级程序设计第三版
- jsp中关于HTTP Status 500这样的错误何解?
- 问一个最基本的正则表达式?
"moveElement('" 他已经结束了然后再+elementId 这个变量,后面一次类推
ID加单引号是把他传递过去是字符串
这个的意思说,在字符串中elementID是变量,把变量的值放在该字符串中。
如果elementID="ids",final_x=1,final_y=2,interval=3 上面的字符串就等于
"moveElement('ids',1,2,3)"
第二种解释。(合理解释)
+号是连接符号
上面表达式解释为
"moveElement('" 连接一个变量 elementID 再连接 "'," 再连接final_x....
就等于
"moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")"
我明白了.因为那些变量都是数值,不加双引号就会误解为"算数加减号"
而'"+elementID+"' 是字符串.所以用单引号.不过也可以用双引号的.只是不可以在字符里同时用2个双引号.所以用单引号.
是不是因为setTimeout的第一个参数是要字符串的?
还有从setTimeout和setInterval的对比文章http://book.csdn.net/bookfiles/344/10034413534.shtml注意其中这样一个写法:
setTimeout(function(){var today = new Date(); alert("The time is: " + today.toString());}, 500);
window.setTimeout方法一般使用两个显式参数,第二个参数是时间,毫秒级,整数,表示延迟多少毫秒执行某个函数.
第一个参数描述的就是需要延迟执行的函数了.
如定义方法:
function init(){alert('延迟1秒后执行我咯')};
window.setTimeout("init()",1000);
这里好象这么写也可以:window.setTimeout(init(),1000);就不具体测试了.还是按照上面的吧.window.setTimeout('init()',1000)也可以哦;单引号双引号都可以,但是如果这么写:window.setTimeout("init('param')",1000);单引号部分表示传入的参数.为了区分,外面的当然只能用双引号拉.下面这段你可以不看>>>>上面提到:window.setTimeout(init({}),1000)方式,要是这样就好了,参数可以传个对象,但是好象不支持.不知道有没有人这么用过?