单击时将索引值重置为零

Posted

技术标签:

【中文标题】单击时将索引值重置为零【英文标题】:reset index value to zero onclick 【发布时间】:2012-05-28 11:56:14 【问题描述】:

确实是问题所在,但是,如何在点击时将索引的值重置为零?

我有一个视频列表,其中任何一个都可以通过单击来播放。视频播放完毕后,将播放下一个视频。

它有效,但如果您单击一个然后另一个,而不是播放下一个视频,它将在刚刚播放的视频之后播放两个视频。如果您第三次单击,则会播放第三次。我知道这是因为在ended 上调用了该函数,并且每次您单击要播放的新视频时,上一个视频都会结束并增加其价值。

如何让它停止这样做?

播放下一个视频的函数是:

$("#myVid").bind("ended", function() 
            $("#bigPic").removeClass("move");
            $("#MyT").fadeIn(250);
            function playArray(ele, array) 
                index++;
                if (index >= array.length) 
                    index = i;
                
                ele.src = array[index];
                ele.load();
                ele.play();
            
            playArray(document.getElementById("myVid"), videos);
        );

附言我试图通过添加index-- onclick 来降低值,但这只是循环播放视频。

【问题讨论】:

尝试扩大变量 index 的范围,并在点击处理程序中将其值显式设置为 0 ... 【参考方案1】:

您正在将您的视频列表保存在一个数组中,对吧?!所以有两个动作: 1.用户点击一个视频,所以你的索引应该是你选择的一个 2.视频已经结束,如果存在则跳转到列表中的下一个。

var index = 0;

$("YourVideoList").bind("click", function() 
   index = "yourCurrentSelectedItem"     
);

$("#myVid").bind("ended", function() 
        $("#bigPic").removeClass("move");
        $("#MyT").fadeIn(250);
        function playArray(ele, array) 
            index++;
            if (index >= array.length) 
                index = 0;   //replaced "i" with 0, to play first video in list
                //return;    //break, if you want the list to stop at the end of the last video
            
            ele.src = array[index];
            ele.load();
            ele.play();
        
        playArray(document.getElementById("myVid"), videos);
    );

应该这样做!

【讨论】:

我知道它应该这样做,但它没有。如果你点击周围选择一个视频,然后观看,它会变得疯狂...... 它发疯了是一个真正精确的描述;)也许你应该在设置新的之前清除你的视频标签的来源?也许这个链接有帮助(带有 phphtml5 视频播放列表)bionicworks.com/php/generate-a-playlist-for-html5-video 抱歉,视频开始播放很奇怪。例如,current->current->first->third 是曾经发生过的事情。我去看看

以上是关于单击时将索引值重置为零的主要内容,如果未能解决你的问题,请参考以下文章

如何重新索引熊猫数据框以将起始索引值重置为零? [重复]

计算 Pandas 中每天重置的累积盘中指标

单击的列表项的索引不会重置

在设计时重置已发布的属性默认值

MySQL 从表中删除所有行并将 ID 重置为零

MySQL 从表中删除所有行并将 ID 重置为零