进度条函数在一次调用后中断
progress bar function breaking after one call
小提琴
在提供的代码中,如果您单击战斗,它将完成战斗动作并填充进度条3次(等于var auto),如果您让它完成此操作,然后再次单击战斗,进度条将达到val 25并冻结。为什么会这样,我该如何解决?
var auto = 3;
var nb = 0;
var progress = function(sec) {
if($('#bar').val() === 0) {
$('#dam').html("You have hit the " + $('#monsters').val() + " for 5 damage").fadeIn(400);
}
if($('#bar').val() >= 75) {
$('#dam').html("You have hit the " + $('#monsters').val() + " for 5 damage").fadeOut(800);
}
var interval = 1000; //milliseconds
setTimeout(function() {
sec = sec + 25;
$('#bar').val(sec);
if (sec > 100) {
$('#bar').val(0);
sec = 0;
nb++;
}
if (nb < auto) progress(sec); //call self with new value
}, interval)
}
$('#battle').click(function() {
progress(0); //initialize progress bar
});
问题是您的nb
变量没有重置。以下代码/条件应该有效:
if (nb < auto)
progress(sec);
else
nb = 0;
参见工作 JSFiddle
相关文章:
- 如何用JavaScriptEasy的方式一次调用大量restful服务
- 有没有一种方法可以在一次调用中修改每个jquery对象的特定属性
- 如何在一次调用中使用jquery从外部文件中获取多个剑道ui模板
- JS - 正则表达式替换在一次调用中发生多次,如何让它运行一次
- 进度条函数在一次调用后中断
- 如何使用上一次调用的数据进行第二次 JS .post 调用
- 如何通过一次调用 Facebook Graph API 来获取多个相册图片 URL
- 创建不会中断上一次调用的重复动画
- 如何只需一次调用就可以将对象数组保存到mongoose DB中
- 为什么函数只运行一次?在上一次调用完成后,尝试使用计数器函数多次运行函数
- 如何在android中一次调用多个java脚本函数来加载webview
- 下划线throttle+确保最后一次调用
- 如何重复调用一个函数并等待下一次调用之前完成
- 如何从函数的最后一次调用中判断它是同步调用还是异步调用?
- 我有这三个函数,该怎么做呢在onload时一个接一个地调用它们在refresh时一次调用一个函数
- 函数只适用于最后一次调用
- 一次调用两个函数
- 在Symfony 2上使用Assetic组合文件,只对所有CSS文件进行一次调用
- 烬:每5秒轮询一次api,但要在获得前一次调用的响应之后
- 一次调用多个ajax函数,PHP, ajax