2014-01-17 3 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); 

в зависимости от изменения размера «вар г» принимает другое значение, что мне нужно использовать в функции мыши.

спасибо.

ответ

1

Вы должны сохранить д к переменной доступной для охвата обеих функций:

(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, которое будет доступно в вашем обработчике событий кликов.

+0

большое спасибо Richard! :) теперь это работает – user3118847

Смежные вопросы