【发布时间】:2013-02-17 16:01:02
【问题描述】:
我正在尝试将一些 div 动画从初始位置移动到其他位置。
为此,我正在改编这个小提琴的代码:
我的代码是:
function animate(list, lft, top, callback) {
alert('list: '+list);
if (list.length === 0) {
callback();
return;
}
$el = list.shift(); // div ids
var lll = lft.shift(); // new value for left of this div (from lft array)
var ttt = top.shift(); // new value for top of this div (from top array)
$el.animate({"left": +lll+'px', "top": +ttt+'px'}, 1000, function () {
animate(list, lft, top, callback);
});
}
如果我将“列表”(div ids)硬编码如下;
$('#TDA0mv'),$('#TDA1mv'),$('#TDA2mv'),$('#TDA3mv'),$('#TDA4mv'),$('#TDA5mv') ,$('#TDA6mv'),$('#TDA7mv'),$('#TDA8mv')
上面的警报会产生这种情况;
list: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
按要求工作。
如果我从隐藏字段中检索 id 并构建一个数组(甚至是一个然后拆分的字符串),我就有这个;
$('#TDA0mv'),$('#TDA1mv'),$('#TDA2mv'),$('#TDA3mv'),$('#TDA4mv'),$('#TDA5mv') ,$('#TDA6mv'),$('#TDA7mv'),$('#TDA8mv')
在上述警报调用中是:
list:$('#TDA0mv'),$('#TDA1mv'),$('#TDA2mv'),$('#TDA3mv'),$('#TDA4mv'),$('#TDA5mv'),$('#TDA6mv'),$('#TDA7mv'),$('#TDA8mv')
当然,这是行不通的。
有没有人知道为什么看似相同的数据对象如此不同?我怀疑这可能是 JSON 类型的事情,因为因此回答了许多“类似”查询。但是,在这个方向上尝试了几件事后,我似乎仍然以字符串而不是“对象”结束。
【问题讨论】:
-
请格式化您的代码示例
-
请更新小提琴以展示您如何“从隐藏字段中检索 id 并构建数组”的示例
-
另外,请使用描述性变量名称。如果您希望其他人能够阅读并帮助您编写代码,则 lll 和 ttt 不是好的变量名。
-
感谢您的回复。所取的分数。我更关注数据问题,sdespont 已经给出了答案。沃尔特·威尔逊
-
sdespont - 只是回来感谢您发现问题和解决方案。沃尔特·威尔逊
标签: javascript arrays string object