0

クリックイベントを関数にバインドしようとしています。これはRESTgetリクエストで発生します:

$.get(Constants.webServices.rest.get.pointings(),params,function(data){
    var json = eval(data);
    for(var i=0; i<json.length;i++){
        [...]
        $('a').click(__applyPointing(json[i],originalParams))
        [...]
    }
}

しかし、単にバインドする代わりに、このコードは関数を実行します。これは今のところ次のとおりです。

__applyPointing: function(item,originalParams){
    console.log('applyPointing');
    console.log(item);
}

bind('click')とon('click')でも試してみましたが、同じ結果になりました。私のjsデバッガーは非同期リクエストでは役に立たないようです。お知らせ下さい。

4

1 に答える 1

4

変更してみてください

$(a).click(__applyPointing(json[i],originalParams))

(function(i) {
    $(a).click(function() { __applyPointing(json[i],originalParams) })
}(i))

バインディングをクロージャーにラップして、json[i]適切に渡されるようにすると便利です

編集:あなたが書いたことに注意してください$(a)、そして多分あなたは書きたいかもしれません$('a')

于 2012-08-08T15:54:11.210 に答える