首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在序列中存储2个数字

在序列中存储2个数字
EN

Stack Overflow用户
提问于 2016-05-26 21:30:10
回答 3查看 38关注 0票数 0

我需要存储2个变量。他们代表了他们所被压迫的秩序。例如,值2的"tab2“,以及值1的"tab1”等等。

我试着把它们储存起来

代码语言:javascript
复制
  window.ACTIVE_NUMBER;
  window.LAST_NUMBER;

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

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

我需要从点击的数据,以动画的一些东西稍后。如果第一个数字大于第二个数字,它将不同于如果它是小的。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-26 21:39:29

您在jQuery电话中缺少了一个“#”:

代码语言:javascript
复制
window.outputBefore = function(x) {
    $("#output-before").text(x); // You were missing the # here
};

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

代码语言:javascript
复制
  window.ACTIVE_NUMBER;
  window.LAST_NUMBER;

至:

代码语言:javascript
复制
var ACTIVE_NUMBER;
var LAST_NUMBER;

另外,您需要在更新LAST_NUMBER之前更改ACTIVE_NUMBER,这样它就可以记住ACTIVE_NUMBER在其当前值之前的内容。

代码语言:javascript
复制
 window.checker = function() {
   LAST_NUMBER = ACTIVE_NUMBER; // Added this line
    var foundnumber = parseInt($(".tool.active").index() + 1);
    ACTIVE_NUMBER = foundnumber;
  };

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

代码语言:javascript
复制
 $(".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); 
    }
  });

把分号放在你所有的功能之后。

完整代码:

代码语言:javascript
复制
$(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
EN

Stack Overflow用户

发布于 2016-05-26 21:41:24

LAST_NUMBER总是未定义,因为您从未定义过它:)

您需要在click函数中调用window.outputBefore,方法是在更改值之前执行一些操作,如var芬兰数= parseInt($(".tool.active").index() +1)。

您还在$(“输出前”).text(X)上缺少了一个#;应该是=> ($(“#output-前面”).text(X);)

票数 1
EN

Stack Overflow用户

发布于 2016-05-26 21:42:11

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

代码语言:javascript
复制
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;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37471340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档