ОБНОВЛЕНО
вам нужно использовать
dropTotal+=dropFileSizes[file].size;
, если вы хотите увидеть рабочий пример, посмотрите на эту скрипку
dropFileSizes
- это объект, а не массив , поэтому вам нужно использовать файловую переменную внутри $.each
в качестве индекса и соответственно получить доступ к файлу с помощью dropFileSizes[file].size;
ИЛИ
если вы хотите, чтобы файл находился в том же месте, вам нужно поместить key
в $.each
, как показано ниже
$.each(dropFileSizes, function(key, file){
dropTotal+=file.size;
});
скрипка
Однако, рассмотрите возможности неопределенных и нулевых значений
Попробуйте этот способ
$.each(dropFileSizes, function(file){
dropTotal+= (dropFileSizes[file].size || 0);
// or dropTotal+=(file.size || ) if you are using function(key, file){};
});
В вашем коде, если dropFileSizes[file].size
содержит что-то отличное от числаматематическая операция не удастся, что приведет к NaN
, и ваш dropTotal
станет NaN
;
Если вы используете dropTotal+= (dropFileSizes[file].size || 0);
, он будет использовать 0 вместо этого, если что-то еще, например null
или undefined
встретил
И чтобы получить значение dropTotal
вне функции
, вам необходимо убедиться, что оператор console.log(dropTotal);
выполняется послезвонок на toggleUploadButton()