gpt4 book ai didi

javascript - 如何在 javascript/jQuery 中设置变量的永久值?

转载 作者:行者123 更新时间:2023-11-28 21:08:20 25 4
gpt4 key购买 nike

我正在创建一个可使用 cookie 进行排序的 jquery ui,以在更新时保持状态。
这是代码的重要部分:

for(i=0; i<counter; i++) {
var connect = "";
var count = 0;
var tipo = "tipo" + i;
for(j=0; j<counter; j++) {
if(j != i) {
if(count > 0) {
connect = connect + ",.tipo" + j;
}
else {
connect = ".tipo" + j;
count++;
}
}
}

$( "." + tipo ).sortable({
connectWith: connect,
dropOnEmpty: "true",
opacity: 0.8
});

$(".tipo" + i).sortable({
activate: function(event, ui) {
var order = $( "." + tipo ).sortable('toArray');
createCookie(tipo, order, 1);
},
update: function(event, ui) {
var order = $( "." + tipo ).sortable('toArray');
createCookie(tipo, order, 1);
},
receive: function(event, ui) {
var order = $( "." + tipo ).sortable('toArray');
createCookie(tipo, order, 1);
}
});

}


我遇到的问题是 var tipo = "tipo"+ i; 在最后一条语句和所有前面的 createCookie(tipo, order, 1); 会将 tipo 作为 tipo2 而不是 tipo0tipo1

希望你能明白我在说什么。如果没有,请告诉我!

但是,我怎样才能使其具有正确的tipo

最佳答案

我链接到的文章归结为只有一个 tipo 因为变量存在于同一范围内。 for 循环不会为每次迭代创建新的作用域。

您需要将变量卡住在新的作用域中,这只能通过 JavaScript 中的函数实现。我还建议对所有变量(即所有循环计数器)使用 var

for(var i = 0; i < counter; i++) {
(function() {
var tipo = ...;
// `tipo` is not changed by a second iteration because this is a new scope

...
})();
}

关于javascript - 如何在 javascript/jQuery 中设置变量的永久值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9327266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com