在一个序列中存储 2 个数字
Storing 2 numbers in a sequence
我需要存储 2 个变量。它们代表它们被按下的顺序。例如 "tab2" 值为 2,然后是 "tab1" 值为 1 等
我尝试用
存储它们
window.ACTIVE_NUMBER;
window.LAST_NUMBER;
和一些全局函数,但它总是告诉我 LAST_NUMBER 未定义。
是否有更简单的方法,比如使用表格?
我需要来自点击的数据,以便稍后为一些内容设置动画。
如果第一个数字大于第二个数字,则与较小的数字不同。
fiddle:
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 始终未定义,因为您从未定义它:)
您需要通过执行类似 var foundnumber = parseInt($(".tool.active").index() + 1) 之类的操作在您的点击函数中调用 window.outputBefore;在更改值之前。
您的 $("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;
}
我需要存储 2 个变量。它们代表它们被按下的顺序。例如 "tab2" 值为 2,然后是 "tab1" 值为 1 等
我尝试用
存储它们 window.ACTIVE_NUMBER;
window.LAST_NUMBER;
和一些全局函数,但它总是告诉我 LAST_NUMBER 未定义。
是否有更简单的方法,比如使用表格?
我需要来自点击的数据,以便稍后为一些内容设置动画。 如果第一个数字大于第二个数字,则与较小的数字不同。
fiddle: 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 始终未定义,因为您从未定义它:)
您需要通过执行类似 var foundnumber = parseInt($(".tool.active").index() + 1) 之类的操作在您的点击函数中调用 window.outputBefore;在更改值之前。
您的 $("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;
}