我正在尝试将一些 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 类型的事情,因为许多“类似”的查询都是这样回答的。但是,在这个方向上尝试了几件事后,我似乎仍然以字符串而不是“对象”结束。