我有一个显示引号的滑块。有些引号比其他引号长,我想提供给用户足够的时间来阅读它们。定时器变量在changeQuote函数中得到更新,但它不更新setInterval函数的参数。我如何更新setInterval的毫秒参数?由于在Javascript中更新setInterval函数的毫秒参数
var quotes=[{quote:'lorem ipsum', name:'test'},{quote:'lorem ipsum ipsum 2', name:'test2'}];
var x=0;
var l = quotes.length;
var ql=0;
var timer=0;
function quoteInit(){
if(x==l) x=0;
ql = quotes[x]['quote'].length;
$('.quote').find('h4').html(quotes[x]['quote']);
$('.quote').find('p').html(quotes[x]['name']);
timer=(ql*110);
x++;
changeQuote(timer);
}
function changeQuote(timer){
console.log(timer);
setInterval(quoteInit,timer);
}
quoteInit();
'setInterval'指运行所提供的功能*每个* X毫秒。你在做什么是创建*多*间隔是所有*同时运行。您需要a)使用'setTimeout'代替或b)在重新设置之前使用'clearInterval()'清除间隔。 –
您将不得不创建一个函数,以新的时间间隔停止并重新启动计时器。编辑:啊,Rocket Hazmat击败了我。 – s1h4d0w
@ s1h4d0w:不要担心,我仍然赞成你的评论:) –