单击时将索引值重置为零
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);
);
应该这样做!
【讨论】:
我知道它应该这样做,但它没有。如果你点击周围选择一个视频,然后观看,它会变得疯狂...... 它发疯了是一个真正精确的描述;)也许你应该在设置新的之前清除你的视频标签的来源?也许这个链接有帮助(带有 php 的 html5 视频播放列表)bionicworks.com/php/generate-a-playlist-for-html5-video 抱歉,视频开始播放很奇怪。例如,current->current->first->third 是曾经发生过的事情。我去看看以上是关于单击时将索引值重置为零的主要内容,如果未能解决你的问题,请参考以下文章