【问题标题】:JQuery popup model for videos用于视频的 JQuery 弹出模式
【发布时间】:2012-01-22 01:17:19
【问题描述】:

我是 JQuery 的新手,正在尝试在缩略图中显示 YouTube 播放列表,如果用户单击缩略图,视频将在模式弹出窗口中播放。我发现了一些基于播放列表 ID 检索 youtube 播放列表的代码,效果很好:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Vidz</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type='text/javascript'>//<![CDATA[
    $(window).load(function () {
        var playListURL = 'http://gdata.youtube.com/feeds/api/playlists/8F9409C187634853?v=2&alt=json&callback=?';
        var videoURL = 'http://www.youtube.com/watch?v=';
        $.getJSON(playListURL, function (data) {
            var list_data = "";
            $.each(data.feed.entry, function (i, item) {
                var feedTitle = item.title.$t;
                var feedURL = item.link[1].href;
                var fragments = feedURL.split("/");
                var videoID = fragments[fragments.length - 2];
                var url = videoURL + videoID;
                var thumb = "http://img.youtube.com/vi/" + videoID + "/default.jpg";
                list_data += '<li><a href="' + url + '" title="' + feedTitle + '"><img alt="' + feedTitle + '" src="' + thumb + '"></a></li>';                
            });
            $(list_data).appendTo(".cont");
        });
    });//]]>  

</script>
</head>
<body>
    <ul class="cont"></ul>
</body>
</html>

我找到了无数的 JQuery 弹出示例,但问题是它们都使用了与本示例不同的 JQuery 版本,因此它们相互取消,并且模式弹出不起作用。

谁能告诉我如何使用用户点击的视频制作模态弹出窗口?

更新: 终于找到了解决JQuery冲突问题的东西。似乎 jquery.min.js 需要先加载,然后再加载任何其他 jquery 脚本。这解决了大部分问题,但出现了一个新问题;链接会根据需要显示,但是当我单击它们时,什么也没有发生。我决定在 IE9 中使用 F12 功能并查看正在生成的 HTML ......一切看起来都不错,但这里有点奇怪......如果我在我的页面上查看源代码,我会得到相同的代码如上。如果我使用 F12 并查看它,我会看到所有 html 标记。当我将 F12 的内容保存到一个新文件并在 IE 中打开它时,它可以工作了!那么,有什么区别呢? IE 没有写出需要的 html 吗?现在完全迷路了.....

更新#2: 这是我最新的代码,其中包含 jquery 模式弹出窗口:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Vidz</title>
</head>
<body>
<a title="01212012 Country Ham House rally" class="youtube" href="#" rel="vLZ5pIfrhNI">ham</a><br />
<div class="cont"></div>
</body>
</html>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type='text/javascript'>//<![CDATA[
$(window).load(function () {
    var playListURL = 'http://gdata.youtube.com/feeds/api/playlists/8F9409C187634853?v=2&alt=json&callback=?';
    var videoURL = 'http://www.youtube.com/watch?v=';
    $.getJSON(playListURL, function (data) {
        var list_data = "";
        $.each(data.feed.entry, function (i, item) {
            var feedTitle = item.title.$t;
            var feedURL = item.link[1].href;
            var fragments = feedURL.split("/");
            var videoID = fragments[fragments.length - 2];
            var url = videoURL + videoID;
            var thumb = "http://img.youtube.com/vi/" + videoID + "/default.jpg";
            //list_data += '<li><a href="' + url + '" title="' + feedTitle + '" rel="' + videoID + '"><img alt="' + feedTitle + '" src="' + thumb + '"</a></li>';                
            list_data += '<a class="youtube" href="#" rel="' + videoID + '" title="' + feedTitle + '"><img alt="' + feedTitle + '" src="' + thumb + '"></a><br>';
        });
        $(list_data).appendTo(".cont");
    });
});//]]>
</script>
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css" rel="stylesheet" />     
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>     
<script type="text/javascript" src="http://wo.simcare.biz/jquery.youtubepopup.js"></script>     
<script type="text/javascript">
$(function () { $("a.youtube").YouTubePopup({ autoplay: 0 }); });     
</script>

正如您在静态链接“ham”中看到的那样,视频在弹出窗口中显示得很好。但是带有缩略图的视频(由 jquery 函数创建)都不起作用。

想法???

【问题讨论】:

    标签: jquery youtube-javascript-api


    【解决方案1】:

    调试工具实时读取浏览器上的内容。源代码是到达浏览器之前的代码。 JavaScript 在浏览器中操纵您的内容,而不是源代码。

    您的链接在 IE9 中似乎也可以正常工作 http://jsfiddle.net/MattLo/guMQa/2/

    【讨论】:

    • 是的,我用小提琴来调试并帮助我解决这个问题......很棒的小工具。我的问题是我添加了一些代码来显示一个 jquery 模式弹出窗口......但是当我点击 vid 时,没有任何反应。它几乎看起来好像页面没有完全呈现 HTML 或类似的东西......如果我采用弹出代码并提供一个静态链接(具有特定类和 url 的“a”标签),它工作正常。当我尝试在上面的 jquery 中构建相同的链接时,它不起作用。根据 F12,该链接看起来很好,但它只是不工作。确实令人沮丧.....
    • 奇怪,在我的 IE9 中,您提供的源代码在 JavaScript 生成链接时完美运行。锚链接按预期工作。在其他浏览器中尝试您的代码。
    • 更新了上面的代码,现在可以使用了。您将事件绑定到不存在的 标记。在加载 JSON 并附加新的 标签 then 后,您将绑定事件。
    • 你能告诉我你做了什么改变吗?我的头在旋转 ATM,我有隧道视力,但由于某种原因看不到它。
    • 转到这个链接jsfiddle.net/MattLo/guMQa/2我也更新了帖子链接(它没有在页面上更新所以它仍然显示旧代码,对不起!)
    猜你喜欢
    • 2018-07-23
    • 2023-04-01
    • 2016-05-08
    • 2014-01-14
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多