正しく動作しない次のスクリプトがあります。
function getWidgetContent( widget ) {
if(widget.script!=null){
$global_widget_id = widget.widget_id;
$.getScript( "js/" + widget.script, function() {
$( ".widget_header_title_" + widget.widget_id ).append( widget.title );
});
}
}
これは次のように呼ばれます。
for ( j = 0; j <= widget_data.d.length - 1; j++ ) {
getWidgetContent( widget_data.d[j] );
}
$.getScript
これにより、関数内で関数が実行され、グローバル値に値が割り当てられ、ループの反復ごとに実行されると思いました。しかし、それは起こっていません。ループが終了するまでループを反復しているように見えます.3回ループし、毎回、つまり3回グローバル値に値を割り当ててから、最後に$.getScript
.
もちろん、$.getScript ファイルのグローバル値の最後の割り当てを 3 回しか使用しないため、これは機能しません...
これを変更してグローバル変数に値を代入し、$.getScript
. 完了したら、元のループを続行し、次の値をグローバル変数に割り当て、$.getScript
ループが終了するまで実行します。