gpt4 book ai didi

JSON 数据在脚本的一部分起作用,但在另一部分不起作用

转载 作者:行者123 更新时间:2023-12-01 07:21:26 27 4
gpt4 key购买 nike

我有以下脚本,但由于某种原因无法正常工作:

success: function( widget_data ) 
{

if( widget_data.d[0] ) {

var j = 0;

for ( j = 0; j <= widget_data.d.length - 1; j++ ) {

$.getScript( "js/" + widget_data.d[j].script, function() {

// this line is complaining about .widget_id
alert(widget_data.d[j].widget_id);
});

// but this line works fine...
alert(widget_data.d[j].widget_id);

}

}

}

我在以下行中收到错误,其中一个带有 .getScript:

alert(widget_data.d[j].widget_id);

错误信息是:

Cannot read property 'widget_id' of undefined

但奇怪的是,以下警报工作正常并返回正确的值:

alert(widget_data.d[j].widget_id);

我做错了什么?

最佳答案

getScript 调用异步运行,捕获变量 j,而不是调用它时的值。这意味着 j 可能具有在调用返回时终止循环的值。您应该在函数内调用 getScript,以便捕获 j 的值而不是它的引用。实际上,实际捕获“小部件”对象本身可能更好,正如您在代码示例中看到的那样。

success: function( widget_data ) 
{

if( widget_data.d[0] ) {

var j = 0;

for ( j = 0; j <= widget_data.d.length - 1; j++ ) {

getWidgetScript( widget_data.d[j] );

alert(widget_data.d[j].script);

// but this line works fine...
alert(widget_data.d[j].widget_id);
alert(widget_data.d[j].title);

}

}

}

function getWidgetScript(widget) {
$.getScript( "js/" + widget.script, function() {
$( ".widget_header_" + widget.widget_id ).text( widget.title );
});
}

关于JSON 数据在脚本的一部分起作用,但在另一部分不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383307/

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