jQuery:执行click()而不是绑定

时间:2012-08-08 15:52:33

标签: javascript jquery click

我正在尝试将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调试器对于异步请求似乎没用。请指教。

1 个答案:

答案 0 :(得分:4)

尝试改变

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

in

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

将绑定封装到闭包中是有用的,因此json[i]被正确传递

编辑:请注意您撰写了$(a),也许您可​​能想写$('a')