1

いくつかの関数が定義されています。setInterval は、毎秒ランダムに 1 つを選択しています。この動作を一時停止する間隔を一時的にクリアするにはどうすればよいですか?

デモ: http://jsfiddle.net/kthornbloom/NtVBZ/1/

コード: function playZoomout() { $('.debug').append('1'); }

function playZoomin() {
    $('.debug').append('2');
}

function playPanright() {
    $('.debug').append('3');
}

function playPanleft() {
    $('.debug').append('4');
}

var fns = [playZoomout, playZoomin, playPanright, playPanleft]
setInterval(function () {
    fns[Math.floor(Math.random() * fns.length)]();
}, 1000);

// This isn't working. Probably because the interval above isn't really named?
$('.pause').hover(function(ev){
    clearInterval(fns);
}, function(ev){
    timer = setInterval( fns, 1000);
});
4

1 に答える 1

2
var fns = [playZoomout, playZoomin, playPanright, playPanleft];
var fn = function () {
    fns[Math.floor(Math.random() * fns.length)]();
}

var myInterval = setInterval(fn, 1000);

$('.pause').hover(function(ev){
    clearInterval(myInterval);
}, function(ev){
    //timer = setInterval( fns, 1000); -> this does not make sense
    myInterval = setInterval(fn, 1000); // this does
});

ワーキングデモ

于 2013-09-23T21:05:42.313 に答える