javascript - 在 Jquery 中使用数组

标签 javascript jquery css arrays

我对 Javascript 不太有经验,而且我几乎一整天都在努力解决这个问题。

我正在使用 Jquery 创建嵌入式 YouTube 视频的 ID 数组:

$(function() {

            $('li').on("click",function(){
                alert($(this).attr('data-pile'));
                var pilename = $(this).attr('data-pile');
                var videoIDs = [];
                $("li[data-pile='"+pilename+"']").each(function(index){
                    videoIDs.push($(this).attr('id'));
                });
                $.each(videoIDs,function(){ 
                });
            });

        });

我需要在这个JS中使用数组:

<script src="//www.youtube.com/iframe_api"></script>

<script>
    /**
     * Put your video IDs in this array
     */
    var videoIDs = [

     //my array of Ids here   

    ];

    var player, currentVideoId = 0;

    function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
            height: '350',
            width: '425',
            events: {
                'onReady': onPlayerReady,
                'onStateChange': onPlayerStateChange
            }
        });
    }

    function onPlayerReady(event) {
        event.target.loadVideoById(videoIDs[currentVideoId]);
    }

    function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.ENDED) {
            currentVideoId++;
            if (currentVideoId < videoIDs.length) {
                player.loadVideoById(videoIDs[currentVideoId]);
            }
        }
    }
</script>

在嵌入视频的每个 div 中,我都应用了与视频具有相同 id 的 id。 我应该如何使这两个脚本工作? 如果有人能指出我正确的方向,我将非常感激。

最佳答案

您声明了两次 videoID 数组,一次在点击事件中,另一次在第二次中 脚本。

点击事件中的一个是该函数本地的,而另一个是全局的。 Javascript 具有函数作用域,因此一旦该函数结束,单击事件就会被丢弃。

如果您删除点击事件中的事件,我相信它应该可以工作。您还应该删除 $.each... 因为我认为它不会有帮助(您正在尝试创建一个播放列表,对吧?)。

应该注意的是,使用全局变量污染全局命名空间被认为是不好的做法。如果这是您页面上的所有代码,那么这可能不是问题。

关于javascript - 在 Jquery 中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18909704/

相关文章:

javascript - 使用JavaScript多次单击按钮时无法带上div

CSS:右边距和绝对定位

javascript - 在 IE9 上使用 DISPID_NEWENUM 使用 C++ 检索 javascript 数组对象失败

javascript - 在自定义指令中,如何在生成模板之前执行逻辑?

javascript - getElementById 和 jquery 之间的区别 $('#smth' )

jquery - 响应式导航栏下拉菜单仅在悬停时打开而不是单击

css - 在 CSS 中重新排列表格

javascript - 如何使用 Javascript 精确设置动态样式转换?

javascript - 从未兑现的 promise 会导致内存泄漏吗?

php - 使用 jquery 进行大型查询和过滤更好,还是进行更小的查询更好?