您好我试图从另一个函数
获取变量代码:
$(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上得到了未定义,但如果我在var totalFiles = names.length之后有一个警报我得到了正确的结果,任何人都知道我能做什么以及我做错了什么?
PS。我已经检查了其他线程,但它仍然无法正常工作。
答案 0 :(得分: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 :(得分:2)
不要将变量声明两次。在onChange
功能中,只需使用totalFiles
,而不是使用var
关键字再次声明。
$(".filesUpload").on("change", function() {
...
totalFiles = names.length;
...
});
答案 2 :(得分: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;
});