2015-10-29 2 views
0

Привет им пытаются получить переменную из другой функцииПолучить var от другой функции?

Код:

$(document).ready(function() { 
     var totalFiles; 

$(".filesUpload").on("change", function() { 
        var files = $(".filesUpload").prop("files"); 
        var names = $.map(files, function(val) { return val.name; }); 
        $("#uploadBar").modal('show'); 
        var totalFiles = names.length; 
       }); 
       $("#uploadBar").on("shown.bs.modal", function() { var test = totalFiles; alert(test); }); 

Но сейчас я только получаю неопределенными на totalFiles, но если у меня есть предупреждение сразу после вар totalFiles = names.length я получаю правильный результат, кто-нибудь знает, что я могу сделать, и что я делаю неправильно?

PS. Я также проверил другие темы, и он все еще не работает.

ответ

2

Проверьте свои ссылки на totalFiles. Вы объявили глобально, а затем объявили его локально в $(".filesUpload").on("change", function() {.

Это то, что оно должно быть:

$(document).ready(function() { 
     var totalFiles; 

$(".filesUpload").on("change", function() { 
        var files = $(".filesUpload").prop("files"); 
        var names = $.map(files, function(val) { return val.name; }); 
        $("#uploadBar").modal('show'); 
        totalFiles = names.length; 
       }); 
       $("#uploadBar").on("shown.bs.modal", function() { var test = totalFiles; alert(test); }); 

Просто удалите 'var' из 1 функции.

+0

Бог, который был неловко. Сейчас я заканчиваю кодировку. Я вернусь к нему завтра, большое вам спасибо! – Tommy

2

Не объявляйте переменную дважды. В вашей функции onChange просто используйте totalFiles, а не объявляйте его снова с помощью ключевого слова var.

$(".filesUpload").on("change", function() { 
    ... 
    totalFiles = names.length; 
    ... 
}); 
1

Вы объявляете локальную переменную в своем обратном вызове. totalFiles = names.length; - это правильный способ обновления глобальной переменной.

var totalFiles; 
$(".filesUpload").on("change", function() { 
    var files = $(".filesUpload").prop("files"); 
    var names = $.map(files, function(val) { return val.name; }); 
    $("#uploadBar").modal('show'); 
    totalFiles = names.length; 
}); 
Смежные вопросы