【发布时间】:2017-01-27 06:44:00
【问题描述】:
在下面的函数中,我不明白为什么计数器函数只触发一次(数字上升一个增量,我希望它计数到 homeFigTwo)。
function effectFour() {
var homeFigOne = parseFloat($('.home .figure').text());
var homeFigTwo = 23.99;
var plusFigOne = parseFloat($('.home-plus .figure').text());
var plusFigTwo = 28.49;
var homeInc = homeFigOne < homeFigTwo ? .01 : -.01;
var plusInc = plusFigOne < plusFigTwo ? .01 : -.01;
function counterOne(){
if (homeFigOne === homeFigTwo){
return
}else{
homeFigOne = (homeFigOne + homeInc).toFixed(2);
$('.home .figure').text(homeFigOne);
window.setTimeout(counterOne, 100);
}
}
counterOne();
}
这可以在此处的上下文中看到:http://codepen.io/timsig/pen/NdvBKN。
非常感谢您的帮助。
【问题讨论】:
-
返回后需要分号...
-
@ccpgh 不,不是:自动分号插入
-
你确定条件的第二个分支正在被占用吗?
-
嗯...这个函数会产生什么效果?如果满足某个条件,则调用 counterOne 并超时。但无论是否满足该条件(因为设置了超时后您没有返回该函数),请调用 counterOne。您确定在调用 counterOne-with-timeout 调用的条件调用之后不想要 return 语句,以便每次都不会在函数底部调用 counterOne?
标签: javascript recursion