Javascript 单击时更改var速度值?

Javascript 单击时更改var速度值?,javascript,button,onclick,increment,var,Javascript,Button,Onclick,Increment,Var,当用户单击按钮时,它将更改var速度值。我该怎么做?此时,其设置为1000 ms//1秒,如此行所示: var increment = setInterval(increment,1000); // gain 1 ever second // THIS IS WHAT I WANT TO CHANGE 我想一按按钮就把1000改成2000。我想这叫做增值?我只知道它的速度,我设置它在1000毫秒的时间内获得一个数字 代码链接: 我会将其更改为使用setTimeout。因此: 将成为: var

当用户单击按钮时,它将更改var速度值。我该怎么做?此时,其设置为1000 ms//1秒,如此行所示:

var increment = setInterval(increment,1000); // gain 1 ever second // THIS IS WHAT I WANT TO CHANGE
我想一按按钮就把1000改成2000。我想这叫做增值?我只知道它的速度,我设置它在1000毫秒的时间内获得一个数字

代码链接:

我会将其更改为使用setTimeout。因此:

将成为:

var interval = 1000
function increment(){
    Coal = Coal % 99999999999999999999 + CoalRate;
    totalCoal = totalCoal % 99999999999999999999 + CoalRate;
    document.getElementById("Coalcounter").innerHTML="Coal : " + Math.round(Coal);
    document.getElementById("CoalClickercost").innerHTML="Upgrade Coal Clicker : " + Math.round(CoalClickerPrice);
    document.getElementById("CoalRatecost").innerHTML="Upgrade Coal Rate : " + Math.round(CoalRatePrice);
    window.setTimeout(interval)
}
increment()
然后你的onclick就变得像

<button onclick="swapInterval">Swap</button>

请注意,这不会改变当前循环的时间间隔。例如,如果您在2000,则在500毫秒后按下按钮,您仍需要再等待1500毫秒,然后它才会触发。

您可以清除时间间隔并再次创建它

$('#element').click(function(){
     window.clearInterval(incrementID); //
     timing = timing + 1000; //this is if you plan to keep adding up.
     incrementID = setInterval(increment, timing);// if not you can always hardcode 2000
});
此外:


把你的代码放在问题中。顺便说一句,可能重复,值得指出的是,用JavaScript命名变量和函数对你来说不太合适。我用过你的方法,但遗憾的是,我对JavaScript还是新手,对它知之甚少。在我的代码中实现它之后,我测试了它,但它不起作用,这意味着我做了一些我看不到的错误。我提供两套价格。一种是煤,另一种是铁。我在这里提供的第一个代码:与Iron的代码非常相似,这就是为什么我将var名称更改为incrementCoal和incrementIron。我不知道这是否糟糕,但我需要它来工作。新代码如下:
function swapInterval() {
    if(interval==1000) interval = 2000
    else interval = 1000
}
$('#element').click(function(){
     window.clearInterval(incrementID); //
     timing = timing + 1000; //this is if you plan to keep adding up.
     incrementID = setInterval(increment, timing);// if not you can always hardcode 2000
});
var timing = 1000;
var incrementID = setInterval(increment,timing); // gain 1 ever second // THIS IS WHAT I WANT TO CHANGE
//you should change the varname so that you can use the handle to clear the already set interval