Javascript 函数未在 document.ready jquery 代码中定义

标签 javascript jquery function scope anonymous-function

我在我的脚本中包含了 jquery,现在正尝试制作这个上传进度条脚本的 jquery 版本:http://www.ultramegatech.com/2008/12/creating-upload-progress-bar-php/

这是我的尝试:

$(document).ready(function () {

    function startProgress(uid) {
        console.log("starting progress");
        setTimeout('getProgress("' + uid + '")', 500);
        //some more stuff
    }

    function getProgress(uid) {
        console.log("getting progress");
        $.ajax({
            type: "GET",
            url: 'upload_getprogress.php?uid=' + uid,
            success: function (msg) {
                progress = msg;
                setTimeout('getProgress("' + uid + '")', 100);
                // do some more stuff
            }

        });
    }

    $('#upload').submit(function () {
        startProgress('<?php echo $uid; ?>');
    });
});

但是我收到了这个错误:

未捕获的 ReferenceError:未定义 getProgress

怎么样?

我试图将函数放在 document.ready() 之外,但没有帮助。我什至在 startProgress 内部的开头定义了 getProgress 但它似乎无法识别该功能。我做错了什么?

最佳答案

无法仔细检查,但我猜这是因为提交回调的范围。按照这些思路尝试一些东西;

$(document).ready(function(){   
    $('#upload').submit(function(){ window.startProgress('<?php echo $uid; ?>'); });
});

var startProgress = function(uid) {
       console.log("starting progress");
       setTimeout('getProgress("' + uid + '")', 500);
       //some more stuff
};

var getProgress = function(uid) {
    console.log("getting progress");
    $.ajax({  type: "GET", 
        url: 'upload_getprogress.php?uid=' + uid, 
        success: function(msg) {   
            progress = msg;
            setTimeout('getProgress("' + uid + '")', 100);
                    // do some more stuff
        }

    });
};

window.startProgress = startProgress;
window.getProgress = getProgress;

关于Javascript 函数未在 document.ready jquery 代码中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17830621/

相关文章:

javascript - 导出 bootstraptable 时可编辑列的值为空

java - Java 中 ORACLE 函数 MONTHS_BETWEEN 的模拟

javascript - 滚动在 Chrome 中有效,但在 Firefox 或 IE 中无效

javascript - 如何使用 javascript/angular.js 设置配置文件

javascript - 使用子字符串更改数组元素值

javascript - JavaScript 中的函数有前置属性?为什么?

javascript - jquery 来回点击事件

javascript - VueJS : Bind values to Component

javascript - JQuery:在按下的按钮下方显示div

javascript - 如何将图像数组应用到 Meteor.js 中的模板助手