如何在jQuery中的函数之外调用clearInterval?在setInterval之外

The*_*Kid 1 javascript jquery function setinterval clearinterval

    function iPadMovie(id) {
    $(function () {
        var i = 1;
        var interval = setInterval(function () {
            jQuery('.animationMax img').attr({
                src: 'http://jdsports.scene7.com/is/image/JDSports/127932jd' + ('0' + i).slice(-2) + '?hei=255&wid=427&resmode=sharp&op_usm=1.1,0.5,0,0&defaultImage=JDSports/sizeImageMissing'
            });
            i++;
            if (i === 28) i = 1;
        }, 100);
    });
}

function playIpad(){
    iPadMovie();
}


function stopIpad(){
    clearInterval = interval;
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到小提琴:http://jsfiddle.net/Vv2u3/15/我希望能够停止电影并重新启动它,如果他们按下播放.当然我可以在方法之外使用clearInterval吗?

Kha*_*lla 8

这是示例链接.

var interval;

function iPadMovie(id) {
    $(function () {
        var i = 1;
        interval = setInterval(function () {
            jQuery('.animationMax img').attr({
                src: 'http://jdsports.scene7.com/is/image/JDSports/127932jd' + ('0' + i).slice(-2) + '?hei=255&wid=427&resmode=sharp&op_usm=1.1,0.5,0,0&defaultImage=JDSports/sizeImageMissing'
            });
            i++;
            if (i === 28) i = 1;
        }, 100);
    });
}

function playIpad(){
    iPadMovie();
}
Run Code Online (Sandbox Code Playgroud)

这里有点解释.首先,你的interval变量(它是setInterval返回的回调函数的实际处理程序)在iPadMovie()函数外是不可见的,所以interval变量应该在这个函数之外声明.其次你应该在clearInterval(handler)函数内部调用stopIpad()函数.可以在此处创建更多信息.

function stopIpad(){
    clearInterval(interval);
}
Run Code Online (Sandbox Code Playgroud)