我有一个脚本,通过点击功能使用load()加载内容。
我想将此更改为每分钟自动加载内容,如幻灯片显示。
我需要循环播放3个视频。
请有人指出我正确的方向我不知道从哪里开始。我目前的脚本如下。
由于
我已根据elliot-bonneville的答案更新了以下代码。我仍然需要找到一种方法来浏览这些视频。
JS
// define var video
var video = $('div.video');
var linkOne = $('.video_1').attr('href');
var linkTwo = $('.video_2').attr('href');
var linkThree = $('.video_3').attr('href');
setInterval(function() {
// load content into video
video.load( linkTwo + ' .content' , function() {
// remove loading text
$('.load').remove();
});
}, 10000) // 60000 milliseconds = one minute
setInterval(function() {
// load content into video
video.load( linkThree + ' .content' , function() {
// remove loading text
$('.load').remove();
});
}, 10000) // 60000 milliseconds = one minute
setInterval(function() {
// load content into video
video.load( linkOne + ' .content' , function() {
// remove loading text
$('.load').remove();
});
}, 10000) // 60000 milliseconds = one minute
答案 0 :(得分:2)
使用setTimeout
我认为如下所示。我还没有测试过,所以可能会有一些语法错误。但希望你明白。如果有什么事情没有意义,请告诉我。
我使用setTimeout
而不是setInterval
的一个原因是这样,另一个计时器在加载完成之后才会被触发。在这种情况下,由于您每1分钟只执行一次,因此无关紧要,但在某些情况下,服务器延迟可能会超过间隔时间。此外,这样,如果由于某种原因,脚本/服务器出现故障并且未收到成功的回复,则不会再进行另一次呼叫。
// define var video
var video = $('div.video');
var currentVid=1;
var maxVid=3;
setTimeout(cycleVideo, 10000) // 60000 milliseconds = one minute
function cycleVideo() {
// load content into video
var link = $('.video_'+currentVid).attr('href');
video.load( link + ' .content' , function() {
// remove loading text
$('.load').remove();
if(currentVid==maxVid) currentVid=1; else currentVid++;
setTimeout(cycleVideo, , 10000) // 60000 milliseconds = one minute
});
}
答案 1 :(得分:1)
使用setInterval
,如下所示:
setInterval(function() {
var link = $('#yourAElementId').attr('href');
// load content into video
video.load( link + ' .content' , function() {
// remove loading text
$('.load').remove();
});
}, 60000); // 60000 milliseconds = one minute