2012-08-08 71 views
0

我試圖將一個單擊事件綁定到一個函數;這種情況爲REST GET請求:jQuery:單擊()執行,而不是綁定

$.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); 
} 

我也試圖與綁定(「點擊')和('點擊'),結果相同。我的js調試器對於異步請求似乎毫無用處。請指教。

+0

你'重新調用函數,並傳遞它的返回值來綁定。你需要將一個引用傳遞給一個函數,這意味着在你命名後沒有'()'! F.如果你知道你的函數的參數是什麼,那麼Calderan的答案很好,就像你在這個例子中做的那樣。 – 2012-08-08 15:57:08

回答

4

試圖改變

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

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

它是非常有用的包裹成這樣json[i]被正確地傳遞

編輯封裝訂:請注意你寫$(a),也許你可能要寫$('a')

+0

不應該是'$('a')'? – Zbigniew 2012-08-08 15:55:01

+0

是的,它可能是,但它也可能是一個變量,包含DOM參考 – fcalderan 2012-08-08 15:56:16

+0

確實,雖然我沒有看到任何。我認爲這可能值得一提。 – Zbigniew 2012-08-08 15:57:16