2014-01-17 111 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