私は次のものを持っています:
for (var i = 0; i <= 10; i += 1) {
var $page_button = $('<a>', {
html : i,
click : function () {
var index = i;
console.log(index);
return false;
}
});
$page_button.appendTo($wrapper);
}
var index
これは関数内に含まれているため、ループの反復ごとに個別に定義されると思いました。この場合、出力されるインデックスの値は常に10です。
リンクテキストはiの正しい値です。これは、DOMに書き込まれ、不変であるためです。
これはなぜですか。問題を解決するには何を変更する必要がありますか?
これは他の多くの質問と似ていることを私は知っていますが、この表記法を使用する動作は異なる結果を引き起こしています。私はjQuery1.7.2を使用しています(残念ながら、新しいものは使用できません)。