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

JQuery Variable Overwrite In Loop, Want To Retain Different Values

本文关键字:保留 希望 变量 循环 覆盖 JQuery      更新时间:2023-09-26

我正在创建一个视频库,有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个视频。

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

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

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