[英]jQuery - Variable not “updating” on increment
我有2个变量
var firstThumb = 2;
var thumbRel = "0" + firstThumb;
这设置了我的第一个缩略图的编号rel属性rel="02"
-我喜欢看起来不错的东西,共有15个大拇指,因此它使我的代码更整齐,看起来更漂亮。 这就是0的原因。
我有一个功能。
function thumbIncrease() {
firstThumb++
};
每隔2秒运行一次。
setInterval(function(){
thumbIncrease();
console.log(firstThumb);
console.log(thumbRel);
}, 2000);
firstThumb的控制台日志按预期增加-每2秒增加2、3、4、5等。
但是-thumbRel的控制台日志每次都保持为02,并且不会增加
所以我猜firstRumb出于某种原因未更新thumbRel吗?
有人可以帮忙吗?
谢谢!!
试试这个: http : //jsfiddle.net/csdtesting/o7x1smq5/
var firstThumb = 2;
var thumbRel = "0";
function thumbIncreases() {
firstThumb++;
thumbRel = "0" +firstThumb;
};
setInterval(function(){
thumbIncreases();
console.log(firstThumb);
console.log(thumbRel);
}, 2000);
您已将thumbRel定义为02
,并且没有在任何地方直接更新它。 它没有被引用,但已被阅读和使用。 为了同时更新两者,这有帮助吗?
function thumbIncrease() {
firstThumb++;
thumbRel = "0" + firstThumb;
};
当你说
var thumbRel = "0" + firstThumb;
Javascript使用firstThumb的当前值来计算thumbRel,在这种情况下为“ 02”。 但是,此后,变量彼此完全分开。 它的行为就像您写的那样:
var thumbRel = "02";
大多数编程语言都采用这种方式。 如果使用=
符号为变量分配值,则变量将保持不变,直到您为其分配了另一个值。
如果要根据firstThumb的值更改值,则应考虑使用函数而不是变量,如下所示:
var firstThumb = 2;
var thumbRel = "0" + firstThumb;
function thumbRel () {
return "0" + firstThumb;
}
function thumbIncrease() {
firstThumb++
};
setInterval(function(){
thumbIncrease();
console.log(firstThumb);
console.log(thumbRel());
}, 2000);
编辑:固定功能调用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.