0

将 for 循环的“i”传递给不同函数的方法是什么?
我需要一个单击函数来更改 <ul> 的左侧位置,但是在每次单击时,它必须根据其索引位置使用存储在数组中的值。

var currentPosition = new Array();

// store some values in an array
function slide() {
  for (j = 0; j < 5; j++) {
    var positions = 100 * j;
    currentPosition.push(positions);
    function moveIt(j);
  }
}

function moveIt(j) {
  $(document).on('click','#left', function() {
    $('ul').animate({'left': currentPosition[j]  + 'px'});
  })   
}

slide();  

http://jsfiddle.net/cadence96/gTQ3M/1/

4

2 回答 2

4

只需删除function循环最后一行中的关键字

var positions = 100 * j; 
currentPosition.push(positions); 
function moveIt(j); 

像这样

var positions = 100 * j; 
currentPosition.push(positions); 
moveIt(j); 
于 2012-05-21T02:49:11.927 回答
3
function slide() {
  for (var j = 0; j < 5; j++) {
    var positions = 100 * j;
    currentPosition.push(positions);
    //function moveIt(j); <=================== delete this.
        moveIt(j); //<======================== Change to this.
  }
}

你更新的小提琴

于 2012-05-21T02:47:01.767 回答