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

标签 javascript jquery variables loops

我正在创建一个视频库,并有 6 个缩略图,单击这些缩略图时,将在页面上的 iframe 中播放相应的视频。

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

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);

关于javascript - JQuery变量在循环中覆盖,想要保留不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9105731/

相关文章:

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

python - 根据时间相关变量不断变化的正弦音

javascript - jquery 清除重置时的验证错误消息

javascript - 仅影响直接子级的 JQuery 方法

php - 强制在客户端缓存数据

jquery - 在HTML中,如何解决滚动时一个固定表格列与另一表格列重叠的问题?

jquery - 使用索引号jquery检索值

variables - Makefile 变量初始化和导出

javascript - 悬停 3 个框未按预期工作

javascript - Twitter Bootstrap 模式隐藏事件只触发一次