1

クリック関数を介してload()を使用してコンテンツをロードするスクリプトがあります。

スライドショーのように1分ごとにコンテンツを自動ロードするように変更したいと思います。

ループする必要のあるビデオが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
4

2 に答える 2

2

使用するsetTimeout

こんな感じだと思います。まだテストしていないので、構文エラーがあるかもしれません。しかし、うまくいけば、あなたは理解しています。意味がない場合はお知らせください。

私がsetTimeoutむしろ使用している理由の1つ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

    });
}
于 2012-05-16T04:01:06.213 に答える
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
于 2012-05-16T03:05:48.343 に答える