0

for ループでクリック関数が必要なので、すべての id 要素をクリックできます。しかし、クリック関数にも i が必要です。そのため、自己実行型の匿名関数が最善の方法であると考えました。しかし、何らかの理由でこれが機能していません。おそらく、クリック機能でパラメーターを転送できないためでしょうか? 私は何を間違えましたか?

for (var i = 0; i < countItems; i++) {     
        $("#item-" + i).click(function(idx) {
           alert(idx);
    })(i)
}
4

4 に答える 4

1

補足として、bind() JavaScript メソッドを使用します。

for (var i = 0; i < countItems; i++) {
    $("#item-" + i).click(function(indx){
           alert(indx);
    }.bind($("#item-" + i)[0],i));
}
于 2014-02-26T10:44:43.390 に答える
0

あなたはこのようなことを試すことができます

for (var i = 0; i < countItems; i++) {     
    $("#item-" + i).click(clickFunctn);
}

function clickFunctn(obj){
    var i=$(obj).attr('id').split('-')[1];
    alert(i);
}

このようにして、コードを最適化し、「i」も一緒に表示され、すべての項目がクリック可能になります。そして、1 つのハンドラー関数をバインドしているだけです。

于 2014-02-26T10:39:31.427 に答える