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等于暂停时,它将停止所有setInterval。
这里的问题是它没有正确行动,我不知道为什么?有人可以指导我这个。非常感谢您的帮助!
谢谢! :)
答案 0 :(得分:3)
你需要调用stopInterval函数
stopInterval();
我认为没有括号
就行不通答案 1 :(得分:3)
替换
stopInterval; // fonction simply put on stack
与
stopInterval(); // fonction call
答案 2 :(得分:2)
您对stopInterval
的调用缺少后面的括号,因此您当前并未实际调用该方法。
尝试使用stopInterval();
答案 3 :(得分: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]);
}
});