繁体   English   中英

jQuery-变量不按增量“更新”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM