2014-01-17 162 views
0

我想知道是否可以从外部函数中恢复存储在内部函数中的值。获取存储内部函数的值

这里是代码:

$('#down').click(function(){ 
    test(); 
    console.log(d); //d is not defined 
}); 

function test(){ 
    $(".block").each(function(ind, ele) { 
     var block = $(ele); 
     // .... 
     var d = $(block).attr("id"); 
    }); 
} 

$(window).on("resize", test); 

取决于调整“变种d”假设不同的值,我需要在点击功能来使用。

谢谢。

回答

1

你将不得不d保存到一个变量访问的两种功能范围:

(function() { 
    var d; 
    $('#down').click(function(){ 
     test(); 
     console.log(d); //d is now set 
    }); 

    function test(){ 
     $(".block").each(function(ind, ele) { 
      var block = $(ele); 
      // .... 
      d = $(block).attr("id"); 
     }); 
    } 

    $(window).on("resize", test); 
})(); 

通过包装另一个函数内部两种功能它限制只是这两个函数的d的范围。

请注意,它只会是您的点击事件处理程序中可访问的d的最后一个设置值。

+0

非常感谢你理查德! :)现在它的作品 – user3118847