gpt4 book ai didi

javascript - 获取原始变量值

转载 作者:行者123 更新时间:2023-12-03 07:29:16 26 4
gpt4 key购买 nike

我尝试在回调函数中使用变量值,但在写入函数时无法获取变量的原始值。

for (i=0; i<2; i++) {
if ($.type(picker[i]) == "object") {
var id = picker[i].$root[0].id;
picker[i].on({
set: function() {
alert("#" + id + " .picker__holder");
},
});
// other code..
}
}

此代码应该遍历选择器对象两次,其中 id 值首先是“datepicker”,第二次运行“datepicker--2”,但当调用回调时,id 始终是第二个值“datepicker” --2"对于 picker[0].on() 回调,我需要它成为第一个回调(“datepicker”)。

我认为这是因为执行回调代码时会读取变量的值,并且此时它已具有最后的值。

对此合理的解决方法是什么?

最好,

阿拉里

最佳答案

您需要将内部异步调用重构为函数。

for (i=0; i<2; i++) {
if ($.type(picker[i]) == "object") {
var id = picker[i].$root[0].id;
// other code..
asynhCall(picker, i, id);
}
}
function asynhCall(picker, i, id)
{
picker[i].on({
set: function() {
alert("#" + id + " .picker__holder");
},
});
}

这是因为在执行异步回调处理程序时,只有 id 才会使用最后一个值(因为 event-loop model )。

关于javascript - 获取原始变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35864588/

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