按顺序存储2个数字

时间:2016-05-26 21:30:10

标签: javascript jquery global-variables sequences

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

我尝试用

存储它们
  window.ACTIVE_NUMBER;
  window.LAST_NUMBER;

以及一些全局函数,但它始终告诉我LAST_NUMBER未定义。

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

我需要点击中的数据,以便稍后动画一些内容。 如果第一个数字大于第二个数字,那么它将比它的第二个数字更小。

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

3 个答案:

答案 0 :(得分:1)

你在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);
    }
  });


});

答案 1 :(得分:1)

LAST_NUMBER始终未定义,因为您从未定义它:)

你需要在你的点击功能中调用window.outputBefore做一些像var foundnumber = parseInt($(" .tool.active")。index()+ 1);在更改值之前。

你在$("输出 - ")之前也错过了#。text(x); 应该是=> ($("#输出之前")文本(X))

答案 2 :(得分:1)

您尚未分配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;
}