变量dos'即使我可以返回更新后的值,也不会改变
Variable doesn't change even though I can return the updated value
我有这个代码:
var playySlideNumber = "1";
var run = function playSlides (playySlideNumber){
$(".slider.secondLayer").css("opacity", "0");
$(".slider.secondLayer.n"+playySlideNumber).css("opacity", "1");
if (playySlideNumber < 5) {
playySlideNumber = parseInt(playySlideNumber) + 1;
} else {playySlideNumber = "1"}
return playySlideNumber
}
setInterval(function(){run(playySlideNumber)}, 3000);
我需要函数playySlides()
返回playySlideNumber
,以便每次setInterval
运行时都有正确的playySlideNumber
。问题是playySlideNumber
保持恒定的= "1"
。
此外,使用递归调用playySlides()
的setTimeout
会更容易吗?
您需要删除参数,因为它覆盖了全局变量,并且不需要从run函数返回值,因为它没有在任何地方使用:
var playySlideNumber = "1";
var run = function playSlides(){
$(".slider.secondLayer").css("opacity", "0");
$(".slider.secondLayer.n"+playySlideNumber).css("opacity", "1");
if (playySlideNumber < 5) {
playySlideNumber = parseInt(playySlideNumber) + 1;
} else {playySlideNumber = "1"}
}
setInterval(run, 3000);
问题是,第一次运行此代码时,playSlideNumber是一个字符串,然后您尝试评估它是否小于5,但永远不会小于5,所以它进入else分支,将"1"(字符串)放回变量中。
相关文章:
- 变量dos'即使我可以返回更新后的值,也不会改变
- ReactJS:如何在改变状态后立即更新组件
- 是否在应用程序缓存清单更新时更新所有文件?或者只是改变了的那些
- ng节目没有'当我的收音机型号改变时,我不会更新
- 在不改变循环速度的情况下更改更新速度
- 如何更新谷歌地图,如果它的地图画布改变了它的尺寸
- 当模型更新时,backbone和knockout如何使视图改变
- 在ipad上基于方向改变更新值
- Angularjs指令:如何在属性改变后更新模板中的ng-class
- 当变量改变时,在AngularJS中更新视图
- AJAX数据库更新与CSS按钮颜色改变使用Codeigniter
- 当绑定变量改变时,Angularjs选择不更新
- 在AngularJs中,基于指令属性的改变来更新UI
- 为什么knockoutjs js不't更新视图,如果一些子数组被改变
- 当引用对象改变时,react .js视图不更新
- Vue-router 2改变路由,但不更新视图
- 谷歌地图更新标记从改变mysql坐标
- 在Angular和Nodejs应用中,如果我改变了html文件,它也不会更新浏览器
- 更改url后,Angular模型不会改变(更新)
- 在一个选项卡的状态改变后,Onsen选项卡没有正确更新