我不明白clearInterval()

时间:2014-01-25 00:36:54

标签: javascript jquery json clearinterval

我玩JSON阵列并且跳过按钮正常工作:

jQuery的:

$(function() {
    // Fetch the initial image
    fetchImage(index);

    // Event listeners
    $("#play").click(function() { fetchImage(next); setInterval(function() { fetchImage(next); }, 1000); return false;});
    $("#stop").click(function() { clearInterval(xxx); return false;});
    $("#prev").click(function() { fetchImage(prev); return false;});
    $("#next").click(function() { fetchImage(next); return false;});
});

xxx最好是我读过的变量。 setInterval()返回一个值。我读过几个例子。我没有成功。

测试页面:http://flamencopeko.net/icons_cogo_16.php

JSON事:http://flamencopeko.net/icons_ajax.php

来源:http://flamencopeko.net/icons_cogo_16.txt

来源:http://flamencopeko.net/icons_ajax.txt

4 个答案:

答案 0 :(得分:1)

您需要将setInterval函数指定给变量

var interval = setInterval(function () {});

clearInterval(interval)

我假设你就是这样。

答案 1 :(得分:1)

您必须先命名您的间隔才能清除它。以下是我对您的代码所做的事情:

    var newInterval;
    // Event listeners
    $("#play").click(function() { 
        fetchImage(next); 
        newInterval = setInterval(function() { 
            fetchImage(next); 
        }, 1000); 
        return false;
    });

    $("#stop").click(function() { 
        clearInterval(newInterval); 
        return false;
    });

答案 2 :(得分:1)

你自己给出了答案

“它返回一个值”

所以让它返回一个值的别名,一个所谓的变量,理想情况下你之前声明它所以当你试图清除它时不会抛出未定义的异常没有#play被点击befre

var xxx;
... 
$("#play").click(function() { fetchImage(next);xxx=setInterval(function() { fetchImage(next); }, 1000); return false;});
...
clearInterval(xxx)...

答案 3 :(得分:1)

您是否曾使用其中一种“数字”设备挤出编号的纸条?

setInterval()的返回值类似于“重复任务ID#”。

你不应该关心这个数字有多大,但你应该将它存储在某个地方,然后你可以将它传回clearInterval()告诉系统哪个任务停止运行