2016-05-26 20 views
0

我需要存储2个变量。他们表示,他们被压的顺序,例如“TAB2”与值2,和之后的“TAB1”值为1等在一个序列中存储2个数字

我试图把它们存放与

window.ACTIVE_NUMBER; 
    window.LAST_NUMBER; 

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

有没有像表格一样的简单方法?

我需要来自点击的数据以后再动画。 如果第一个数字大于第二个数字,它会比较小。

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

回答

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

很好的解释。非常感谢! – Dawid

1

LAST_NUMBER永远是不确定的,因为你永远无法定义它:)

您需要通过执行类似VAR foundnumber = parseInt函数调用window.outputBefore在点击功能( $(“。tool.active”)。index()+ 1);在更改值之前。

您还在$(“output-before”)中缺少#。 应该是=>($(“#输出前”)文本(X);)

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; 
} 
相关问题