2013-05-22 43 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。 –