使用jQuery更新数组中对象的物理位置

时间:2011-08-23 18:49:25

标签: javascript jquery html css dhtml

jQuery + JavaScript

       var movable = new Array();
       movable.push($('#cloud1'));
       movable.push($('#comment1'));

        if(left == true){ 
            for(i = 0; i < movable.length; i++){
                movable[i].position().left += 10;
                movable[i].css("left", movable[l].position().left);                   
            }
        }

我正在尝试在按下左箭头键的同时在屏幕上移动一组对象。我已经向数组中添加了两个对象,然后我尝试循环遍历数组,增加该对象的位置,然后更新其css。但是,对象的位置始终与我使用的检查相同:

            alert(
            "Size: " + movable.length +
            "\nIndex 0: " + movable[0] +
            "\nLeft: " + movable[0].position().left + 
            "\nTop: " + movable[0].position().top 
            ); 

你能明白为什么它不起作用吗?或者告诉我一个更好的方法。谢谢!

工作代码:

for(l = 0; l < movable.length; l++){
    var tmpPosX = movable[l].position().left;
    tmpPosX += amount * 10;
    movable[l].css("left", tmpPosX);                   
}

1 个答案:

答案 0 :(得分:3)

.position()不是'set'方法;你只能用它来获得这个位置。

http://api.jquery.com/position/

movable[i].offset({left:movable[i].position().left+10})应该可行。

http://api.jquery.com/offset/#offset2