获取存储内部函数的值

时间:2014-01-17 15:13:39

标签: javascript jquery

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

这是代码:

$('#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);

取决于调整大小“var d”假定我需要在click函数中使用不同的值。

谢谢。

1 个答案:

答案 0 :(得分: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的最后一个设置值。