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