在函数内的函数中输出变量

  • 本文关键字:函数 输出 变量 jquery file
  • 更新时间 :
  • 英文 :


我有一个问题与我写的脚本。

我想用truefalse输出变量error

我无法从' fileErrors '函数中获得error变量输出。

谁能看看下面的代码,告诉我是否有一个明显的问题,为什么它不输出?

function file() {
    var error;
    if (window.File && window.FileList && window.FileReader) {
        if (!((type == 'jpg') || (type == 'jpeg'))) {
            $('#file-info').html('Wrong file type. JPG and JPEG only.').slideDown('slow');
            $('.upload-button').attr("disabled", true);
            error = true; 
        } else {
            var fileSize = $('.file_field input[type=file]')[0].files[0].size; 
            var maxFileSize = 8388608;
            var maxFileDimension = 1920;
            var fileWidth;
            var fileHeight;
            var url = window.URL || window.webkitURL;
                var fileField = $('.file_field input[type=file]')[0].files[0];
                    var image = new Image();
                    image.onload = function() {
                        fileWidth = this.width;
                        fileHeight = this.height;
                        fileErrors();   
                    };
                image.src = url.createObjectURL(fileField);
            function fileErrors() {
                if ( fileWidth > maxFileDimension || fileHeight > maxFileDimension ) {
                    $('#file-info').html('File dimensions exceed '+maxFileDimension+'px.').slideDown('slow');
                    $('.upload-button').attr("disabled", true);     
                    error = true;
                } else if ( fileSize > maxFileSize ) {
                    $('#file-info').html('File exceeding maximum file size.').slideDown('slow');
                    $('.upload-button').attr("disabled", true);
                    error = true;
                } else {
                    $('#file-info').slideUp();
                    $('.upload-button').attr("disabled", false);                    
                    error = false;
                }
            };
        }           
    } else {
        if (!((type == 'jpg') || (type == 'jpeg'))) {
            $('#file-info').html('Wrong file type. JPG and JPEG only.').slideDown('slow');
            $('.upload-button').attr("disabled", true);
            error = true;
        } else {
            $('#file-info').slideUp();
            $('.upload-button').attr("disabled", false);
            error = false;
        }   
    }
    console.log(error);
};                      

没有调用fileErrors函数。


它将在触发图像元素的onload事件时被调用。但是,只要您没有将元素添加到DOM树中,onload事件就不会被触发。

如果您想调试错误变量是否正确设置,您可以像这样手动调用onload事件处理函数:

 image.onload()

相关内容

  • 没有找到相关文章

最新更新