将for循环的索引传递给不同的函数

时间:2012-05-21 02:44:23

标签: javascript jquery for-loop

将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/

2 个答案:

答案 0 :(得分:4)

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

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

喜欢这样

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

答案 1 :(得分: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.
  }
}

Yours updated fiddle