1
var timer = 0
var startInterval = function( value ) {
    timer = setInterval( "checkNewPost();", value );
}
var stopInterval = function() {
    clearInterval( timer );
}

jQuery("#centerColumn a").click(function() {
    var a_id = jQuery(this).attr("id");
    var splitValue = a_id.split("-");
    var newValue = splitValue[1];

    if( newValue == "30" ) { 
        stopInterval;
        startInterval( 10000 );
    }
    else if( newValue == "1" ) {
        stopInterval;
        startInterval( 20000 );
    }
    else if( newValue == "5" ) {
        stopInterval;
        startInterval( 30000 );
    }
    else if( newValue == "pause" )
        stopInterval;
});

正如您在我的代码中看到的,逻辑非常简单,当 newvalue 等于 30 时,它将停止当前间隔并在 setInterval 上以 10000 秒重新启动它。而当newValue等于pause时,它会停止所有的setInterval。

这里的问题是它不能正确运行,我不知道为什么?有人可以指导我吗?您的帮助将不胜感激!

谢谢!:)

4

4 回答 4

3

代替

 stopInterval; // fonction simply put on stack

 stopInterval(); // fonction call
于 2012-04-24T07:10:21.657 回答
3

你需要调用 stopInterval 函数

stopInterval();

我认为没有括号它就行不通

于 2012-04-24T07:08:08.600 回答
2

您的调用stopInterval缺少括号后的括号,因此您当前实际上并未调用该方法。

尝试使用stopInterval();

于 2012-04-24T07:09:43.950 回答
1

其他人都是对的,你应该使用stopInterval(). 这里还有一个更紧凑且 IMO 更易读的代码版本:

$('#centerColumn a').click(function () {
    var id = this.id.split('-')[1];
    var value = {
        30: 10000,
        1: 20000,
        5: 30000
    };
    id ==== 'pause' && stopInterval();
    if (value[id]) {
        stopInterval();
        startInterval(value[id]);
    }
});
于 2012-04-24T07:19:12.727 回答