我无法得到clearInterval工作:/

时间:2013-08-23 01:19:22

标签: javascript jquery css

我制作了自己的幻灯片供我自己使用,一切正常。我已经设置了一个间隔,它会显示不同的幻灯片。

现在我正在尝试添加在悬停时暂停间隔的可能性,并在离开幻灯片div后继续它。

你对我有什么建议吗?谢谢

这就是我现在所拥有的:

function slideContent(div) {

    $('.contents').removeClass('act');

    if (div == 'first') {
        $('#stretchWidth').stop().animate({ "left": 0}, 700);
        $('.contents.first').addClass('act');
    } else if (div == 'second') {
        $('#stretchWidth').stop().animate({ "left": -700}, 700);
        $('.contents.second').addClass('act');
    } else if (div == 'third') {
        $('#stretchWidth').stop().animate({ "left": -1400}, 700);
        $('.contents.third').addClass('act');
    } else if (div == 'fourth') {
        $('#stretchWidth').stop().animate({ "left": -2100}, 700);       
        $('.contents.fourth').addClass('act');
    } else if (div == 'fifth') {
        $('#stretchWidth').stop().animate({ "left": -2800}, 700);       
        $('.contents.fifth').addClass('act');
    }
};




function slideContentAutomatic() {
    var $n;
    $n = 1;

    var run = function() { 

        switch($n) {
            case 0:
            slideContent('first')
            $n++;
            break;

            case 1:
            slideContent('second')
            $n++;
            break;

            case 2:
            slideContent('third')
            $n++;
            break;

            case 3:
            slideContent('fourth')
            $n++;
            break;

            case 4:
            slideContent('fifth')
            $n = 0;
            break;
        }
    }

    $('#contentSlide').hover(function() {
        clearInterval(run);
    }, function(){
        setInterval(run, 4000);
    });
}

2 个答案:

答案 0 :(得分:4)

这就是clearInterval

的方法
var x = setInterval(run, 4000); 

clearInterval(x);

答案 1 :(得分:0)

clearInterval应该只接受由setInterval创建的唯一Interval ID。我建议您将全局变量设置为IntervalID。

e.g。

var myIntervalId = null;
function slideContentAutomatic() {
    //..Your code..
    $('#contentSlide').hover(function() {
        clearInterval(myIntervalId);
    }, function(){
        setInterval(run, 4000);
    });
}

希望这会有所帮助。 https://developer.mozilla.org/en-US/docs/Web/API/window.clearInterval?redirectlocale=en-US&redirectslug=DOM%2Fwindow.clearInterval