javascript - 精简视频播放列表代码

标签 javascript jquery

我想知道如何精简我为视频播放器生成的代码。每次添加新视频时,我都必须复制每个视频的功能并为相关视频复制该功能。有谁知道如何 trim 它,以便当我将新视频添加到列表中时,它会采用正确的功能来显示它,而无需复制、粘贴并仅更改链接。

fiddle 在这里 - http://jsfiddle.net/olichalmers/44tQM/

  $(document).ready(function(){

        var videoContainer = $('.video-hold');
        var videoOneBtn = $('.one');
        var videoTwoBtn = $('.two');
        var videoThreeBtn = $('.three');
        var videoFourBtn = $('.four');

        var videoOne = '<iframe width="100%" height="100%" src="//www.youtube.com/embed/brFKqr0BZcE?wmode=transparent&controls=0&showinfo=0" frameborder="0" allowfullscreen="true"></iframe>';
        var videoTwo = '<iframe width="100%" height="100%" src="//www.youtube.com/embed/wxrYmYyRMZk?wmode=transparent" frameborder="0" allowfullscreen="true"></iframe>';
        var videoThree = '<iframe width="100%" height="100%" src="//www.youtube.com/embed/MaCSd0eD5Rw?wmode=transparent" frameborder="0" allowfullscreen="true"></iframe>';
        var videoFour = '<iframe width="100%" height="100%" src="//www.youtube.com/embed/MaCSd0eD5Rw?wmode=transparent" frameborder="0" allowfullscreen="true"></iframe>';


        videoContainer.append(videoOne);


        videoOneBtn.click(function (e) {

            videoContainer.empty().append(videoOne);

                $('.video-hold iframe').each(function () {

                    var url = $(this).attr("src");

                    $(this).attr("src", url + "&autoplay=1&controls=0&showinfo=0");

                    return false;

                });

                e.preventDefault();
        });




        videoTwoBtn.click(function (e) {

            videoContainer.empty().append(videoTwo);

            $('.video-hold iframe').each(function () {

                var url = $(this).attr("src");

                $(this).attr("src", url + "&autoplay=1&controls=0&showinfo=0");

                return false;

            });

            e.preventDefault();

        });




        videoThreeBtn.click(function (e) {

            videoContainer.empty().append(videoThree);

            $('.video-hold iframe').each(function () {

                var url = $(this).attr("src");

                $(this).attr("src", url + "&autoplay=1&controls=0&showinfo=0");

                return false;

            });

            e.preventDefault();

        });




        videoFourBtn.click(function (e) {

            videoContainer.empty().append(videoFour);

            $('.video-hold iframe').each(function () {

                var url = $(this).attr("src");

                $(this).attr("src", url + "&autoplay=1&controls=0&showinfo=0");

                return false;

            });

            e.preventDefault();

        });



});

最好, 奥利弗

最佳答案

您可以执行以下操作:在 HTML 中,更改 id 中的类,然后添加一个类,如下所示:

        <li><a href="#" class="vidbtn" id="one">Paper Heart</a></li>
        <li><a href="#" class="vidbtn"  id="two">Rumour</a></li>
        <li><a href="#" class="vidbtn"  id="three">Millionaire Transmitter</a></li>
        <li><a href="#" class="vidbtn"  id="four">Another video</a></li>

如果你有这个,你可以像这样执行一次该函数:

$( ".vidbtn" ).click(function(e ) {
        videoContainer.empty().append(eval(this.id));

            $('.video-hold iframe').each(function () {

                var url = $(this).attr("src");

                $(this).attr("src", url + "&autoplay=1&controls=0&showinfo=0");

                return false;

            });

            e.preventDefault();

        });

希望这对您有帮助。

编辑:

这是一个基于您的代码并进行了一些更改的工作 JSFiddle: JSFiddle

关于javascript - 精简视频播放列表代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21046258/

相关文章:

javascript - Vue + Jest 模拟全局方法

单击 DIV 或其子项时的 Jquery Draggable

php - Facebook风格的多图片上传

javascript - 如何根据列值在每行上显示复选框 - JQuery DataTable

javascript - 如何使用确认警报并返回 AJAX promise ?

javascript - 自定义元素非法构造函数

javascript - 父对象原型(prototype)继承的差异

javascript - 如何从异步调用返回响应?

javascript - 为什么我的 React 单元测试导入不起作用?

javascript - Angular JS - ng-repeat 重复旧值