【问题标题】:jQuery bind inside a for loop variable scopejQuery在for循环变量范围内绑定
【发布时间】:2013-05-22 04:13:00
【问题描述】:

我知道这个问题已被问过很多次,但我无法从 Stack O 上找到的内容解决。这是我的代码

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

每次结果值都是最后一个 for 循环值。如何保持范围以使单击的链接产生正确的值?

我需要正确的retrieveedSearchesListType 来反映点击链接的时间。

提前致谢

【问题讨论】:

    标签: jquery scope


    【解决方案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));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 2016-11-02
      相关资源
      最近更新 更多