JQuery变量在循环中覆盖,想要保留不同的值

时间:2012-02-02 01:03:41

标签: javascript jquery variables loops

我正在创建一个视频库并有6个缩略图,点击它们时,会在页面上的iframe中播放相应的视频。

当用户转到下一页视频,加载存储在XML文档中的新链接时,这6个缩略图会发生变化。

var linkhtml=x[i].getElementsByTagName("linkhtml")[0].childNodes[0].nodeValue;

我遍历XML中的6个元素并更改缩略图<td id="videoBox[1-6]">

$('#videoBox' + j).mousedown(function () {
    frames['videoPlayer'].playVideo(linkhtml, videoPlaylist);
});

然而,这不起作用,因为当我点击任何缩略图时,它会调用上次设置的任何linkhtml,因此页面上的第6个视频。

如何让每个缩略图正确保留其链接?

1 个答案:

答案 0 :(得分:0)

使用匿名函数创建一个闭包,用于捕获当时变量的值:

(function(linkhtml){

  $('#videoBox' + j).mousedown(function () {
    frames['videoPlayer'].playVideo(linkhtml, videoPlaylist);
  });

})(linkhtml);