将参数传递给JQuery on()以获取Array父级

时间:2013-11-01 07:04:03

标签: javascript jquery html5 video

我有一个数组,

[0][video object]
[0][state]
[0][parameters]

[1][video object]
[1][state]
[1][parameters]
.
.
.

我想知道阵列中所有视频的播放位置:

for(i=0;i<videos.length;i++){
    $(videos[i]['video']).on('canplaythrough', function(){

       //do stuff - check all
       update parent > ['state'] to true;

    }
}

问题出在我松开索引之后。我怎样才能在on()函数中传递它? 我想得到数组项的父级。

2 个答案:

答案 0 :(得分:2)

你正在丢失i的值,因为它是一个闭包变量,在给定的情况下,因为你在迭代数组我认为最好在这里使用$ .each()

$.each(videos, function(idx, video){
    $(video.video).on('canplaythrough', function(){

       //do stuff - check all
       video.state = true

    }
})

答案 1 :(得分:1)

要使用var i功能中的on,您可以执行以下操作

for(i=0;i<videos.length;i++){
    $(videos[i]['video']).on('canplaythrough', function(i){
       console.log(i); // i is accessible here now
       //do stuff - check all
       videos[i]['state'] = true;

    }
}