按顺序存储 2 个数字



我需要存储 2 个变量。它们代表他们被按下的顺序。例如,值为 2 的"tab2",之后的值为 1 的"tab1"等。

我试图将它们存储

  window.ACTIVE_NUMBER;
  window.LAST_NUMBER;

和一些全局函数,但它总是告诉我LAST_NUMBER是未定义的。

有没有更简单的方法,比如桌子?

我需要点击的数据来稍后为一些东西制作动画。如果第一个数字大于第二个数字,它将与较小的数字不同。

小提琴:https://jsfiddle.net/gfsmhy37/

jQuery 调用中缺少"#":

window.outputBefore = function(x) {
    $("#output-before").text(x); // You were missing the # here
};

另外,其他一些事情:改变

  window.ACTIVE_NUMBER;
  window.LAST_NUMBER;

自:

var ACTIVE_NUMBER;
var LAST_NUMBER;

此外,您需要在更新ACTIVE_NUMBER之前更改LAST_NUMBER,这样它就会记住ACTIVE_NUMBER在其当前值之前是什么。

 window.checker = function() {
   LAST_NUMBER = ACTIVE_NUMBER; // Added this line
    var foundnumber = parseInt($(".tool.active").index() + 1);
    ACTIVE_NUMBER = foundnumber;
  };

然后在单击函数中,您需要输出LAST_NUMBER:

 $(".tool").click(function() {
    if ($(this).hasClass("active")) {
      console.log("It is already active.");
    } else {
      $(".tool").removeClass("active");
      $(this).addClass("active");
      checker();
      outputBefore(ACTIVE_NUMBER); // Add this line
      output(LAST_NUMBER); 
    }
  });

并在所有函数之后加上分号。

完整代码:

$(document).ready(function() {
  //    global variables
  var ACTIVE_NUMBER;
  var LAST_NUMBER;
  //    global functions
  window.output = function(x) {
    $("#output").text(x);
  };
  window.outputBefore = function(x) {
    $("#output-before").text(x);
  };
  window.checker = function() {
   LAST_NUMBER = ACTIVE_NUMBER;
    var foundnumber = parseInt($(".tool.active").index() + 1);
    ACTIVE_NUMBER = foundnumber;
  };
  //    the starting value
  //    if(LAST_NUMBER == undefined){
  //        LAST_NUMBER = 1;
  //    }
  checker();
output(ACTIVE_NUMBER);
outputBefore(LAST_NUMBER);


  //    Changes applied onclick event
  $(".tool").click(function() {
    if ($(this).hasClass("active")) {
      console.log("It is already active.");
    } else {
      $(".tool").removeClass("active");
      $(this).addClass("active");
      checker();
      outputBefore(ACTIVE_NUMBER);
      output(LAST_NUMBER);
    }
  });

});

LAST_NUMBER总是未定义的,因为你从不定义它:)

在更改

值之前,您需要在单击函数中调用 window.outputBefore,方法是执行类似 var foundnumber = parseInt($(".tool.active").index() + 1); 的操作。

你的 $("output-before").text(x) 上也缺少一个 #;应该是 => ($("#output-before").text(x);)

你还没有分配LAST_NUMBER变量和jQuery选择器错误...我希望这就是你要找的https://jsfiddle.net/gfsmhy37/3/

window.outputBefore = function(x) {
$("#output-before").text(x);
}
window.checker = function() {
var foundnumber = parseInt($(".tool.active").index() + 1);
LAST_NUMBER =  ACTIVE_NUMBER;
ACTIVE_NUMBER = foundnumber;
}

相关内容

  • 没有找到相关文章

最新更新