2013-05-22 44 views
0

我知道這個問題的jQuery綁定已經問了很多次,但我一直無法從我的堆棧O.找到解決這裏是我的代碼裏面一個for循環變量的作用域

for(var i=0; i<retrievedSearchesListLength; i++){ 
retrievedSearchesListProv = retrievedSearchesList[i].searchId; 
retrievedSearchesListType = retrievedSearchesList[i].searchParameters; 

    function getEventHandlerFunction(a){ 
    $J.cookies.set('ps_clickedsearch',a); 
} 

$J('#submitSearch'+i).bind('click',getEventHandlerFunction(retrievedSearchesListType)); 
} 

每次得到的值都是最後一個循環值。如何保持範圍,使鏈接點擊結果的正確值?

我需要正確的retrieveSearchesListType來反映鏈接何時被點擊。

在此先感謝

回答

1

你需要從getEventHandlerFunction

for(var i=0; i<retrievedSearchesListLength; i++){ 
    retrievedSearchesListProv = retrievedSearchesList[i].searchId; 
    retrievedSearchesListType = retrievedSearchesList[i].searchParameters; 

    function getEventHandlerFunction(a){ 
     return function(){ 
      $J.cookies.set('ps_clickedsearch',a); 
     } 
    } 

    $J('#submitSearch'+i).bind('click',getEventHandlerFunction(retrievedSearchesListType)); 
} 
+0

返回回調方法,謝謝!問題解決了。謝謝Arun。 –