0

JavaScriptループが正しく機能していません。の最終値のみを取得しています$i

$(function() {
    var $count = $('#count').val();
    for (var $i = 1; $i < $count; $i++) {
        var btnRemove = $('#removeImage' + $i);
        var profilepictureid = $('#profilePitcureID' + $i).val();
        btnRemove.click(function() {
            alert($i);
        });
    }
});​
4

1 に答える 1

3

clickイベントハンドラーが実行されるまでに、は$i最終値()に達しました$count - 1$iループの各反復での値をキャプチャする必要があります。$iこれを行うには、各反復での値を「閉じる」クロージャを導入します。

for(var $i=1; $i<$count; $i++) {
    var btnRemove=$('#removeImage'+$i); 
    var profilepictureid = $('#profilePitcureID'+$i).val();

    (function ($i) {
        btnRemove.click(function(){
            alert($i);
        });
    }($i));
}       
于 2012-11-19T11:15:44.870 に答える