jQuery - 如何使用load()每分钟自动加载内容

时间:2012-05-16 03:02:23

标签: jquery load

我有一个脚本,通过点击功能使用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

2 个答案:

答案 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