0

我正在尝试将单击事件绑定到函数;这发生在 REST 获取请求中:

$.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 回答