我正在尝试将click事件绑定到函数;这发生在REST get请求中:
$.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调试器对于异步请求似乎没用。请指教。
答案 0 :(得分:4)
尝试改变
$(a).click(__applyPointing(json[i],originalParams))
in
(function(i) {
$(a).click(function() { __applyPointing(json[i],originalParams) })
}(i))
将绑定封装到闭包中是有用的,因此json[i]
被正确传递
编辑:请注意您撰写了$(a)
,也许您可能想写$('a')