Обновление физической позиции объекта в массиве с использованием jQuery - PullRequest
0 голосов
/ 23 августа 2011

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 Ответ

3 голосов
/ 23 августа 2011

.position() не является методом set;Вы можете использовать его только для получения позиции.

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

movable[i].offset({left:movable[i].position().left+10}) должно работать, хотя.

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

...