只是不能使clearInterval()工作

时间:2014-11-25 03:32:59

标签: javascript jquery setinterval clearinterval

我已经阅读了与clearInterval相关的所有帖子,但不知何故只是无法使其工作...... 脚本的作用是在“.xmas-title”更改图像后设置间隔。 一旦鼠标单击,间隔将被清除。

var animation;
$(".xmas-title").delay(4000).fadeIn(400, function(){
    bear_shake(true);
});

$(".xmas-more").delay(4200).fadeIn(400, function(){
    $('.bg-xmas').css( 'cursor', 'pointer' );
    $(".bg-xmas").click(function(){
        show_msg();
        bear_shake(false);
    });
});

function bear_shake(bool){
    if(bool){
        animation = setInterval(function(){
            $(".xmas-bear").delay(200).fadeOut(0, function(){
                $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o1.png');
            }).fadeIn(0);
            $(".xmas-bear").delay(200).fadeOut(0, function(){
                $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o2.png');
            }).fadeIn(0);
        },0);
        console.log('true');
    }else{
        clearInterval(animation);
        console.log('false');
        $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear.png');
    }
}

1 个答案:

答案 0 :(得分:0)

谢谢你们,似乎我想念基本的东西,只是试图让自己变得困难。 我和你们所有人结合了。意见,并让它现在运作。 函数bear_shake重写如下:

function bear_shake(bool){
    if(bool){
        var i = 2;
        animation = setInterval(function(){
            if(i % 2== 0){
                $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o1.png');
            }else{
                $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear_o2.png');
            }
            i++;
        },200);
    }else{
        clearInterval(animation);
        $(".xmas-bear").children("img").attr('src', 'images/xmas/xmas-bear.png');
    }
}

现在看起来很简单,谢谢大家。 而且我想知道还有其他更好或更聪明的方法吗?