我需要存储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);
}
});
});
关于javascript - 顺序存储2个数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37471340/