1

如果您在此处查看此页面,您会看到我有一个 Youtube 画廊设置,它在大多数情况下都有效。当您单击缩略图时,它会切换视频,但不会正确切换右侧的文本。它似乎正在加载视频后面的文本,在某些情况下需要单击两次才能切换右侧的文本。

看看我下面的 jQuery,有人可以帮我确定问题吗?

谢谢!

<script>
function replaceVideo(id) {
  originalSrc = jQuery("iframe", "#" + id).attr("src");
  autoPlay = originalSrc + "&autoplay=1";
  jQuery("iframe", "#" + id).attr("src", autoPlay);
  video = jQuery(".video-content", "#" + id).html();
  text = jQuery(".video-description").html();
  jQuery(".vid_desc").html(text);
  jQuery(".flex-video").html(video);
  jQuery("iframe", "#" + id).attr("src", originalSrc);
}

jQuery(".video-list li").click(function() {
  id = jQuery(this).attr("id");
  replaceVideo(id);
});

jQuery(window).load(function() {
  if(window.location.search.substring(1)) {
        element = window.location.search.substring(1).split('&');
        if (document.getElementById(element[0])) {
            document.onload = replaceVideo(element[0]);
        }
    }
});
</script>
4

3 回答 3

0

在处理程序中包装代码document.ready

$(function(){
jQuery(".video-list li").click(function() {
  id = jQuery(this).attr("id");
  replaceVideo(id);
});
});
于 2013-03-15T07:58:15.783 回答
0

我认为问题在于您如何选择要显示的文本。

这条线

text = jQuery(".video-description").html();

正在使用“video-description”类抓取每个元素。您可能只想从单击的项目中获取视频描述。所以像:

text = jQuery("#" + id + " .video-description").html();
于 2013-03-15T08:05:47.880 回答
0

我能够使用以下代码修复它。:-)

<script>
function replaceVideo(id) {
  originalSrc = jQuery("iframe", "#" + id).attr("src");
  autoPlay = originalSrc + "&autoplay=1";
  jQuery("iframe", "#" + id).attr("src", autoPlay);
  video = jQuery(".video-wrap", "#" + id).html();
  jQuery(".flex-video").html(video);
  text = jQuery(".video-description", "#" + id).html();
  jQuery(".vid_desc").html(text);
  jQuery("iframe", "#" + id).attr("src", originalSrc);
}

jQuery(".video-list li").click(function() {
  id = jQuery(this).attr("id");
  replaceVideo(id);
});

jQuery(window).load(function() {
  if(window.location.search.substring(1)) {
        element = window.location.search.substring(1).split('&');
        if (document.getElementById(element[0])) {
            document.onload = replaceVideo(element[0]);
        }
    }
});
</script>
于 2013-03-15T08:17:09.663 回答