jQuery $ .getScript - 未捕获的ReferenceError:未定义myFunction

时间:2017-09-08 17:05:20

标签: jquery

$.getScript("/js/my.js")
    .done(function(script, textStatus) {
        console.log(script);
        myFunction();
    })
    .fail(function(jqxhr, settings, exception) {
        $("div.log").text("Triggered ajaxError handler.");
    });

.done中的脚本参数返回我的整个js文件,其中还包含myFunction()。但是我收到错误Uncaught ReferenceError: myFunction is not defined

my.js

$(function () {
     function myFunction() {
        console.log("Worked!")
    }
}); 

2 个答案:

答案 0 :(得分:0)

我尝试了你的代码,我遇到的唯一错误就是你对传递的参数一无所知

Uncaught ReferenceError: argument is not defined

如果我删除参数并调用您的函数,如:

.done(function(script, textStatus) {
        console.log(script);
        myFunction();
    }

工作正常。

确保JS文件中的函数名称正好是myFunction。 也许重新创建它以避免特殊字符。

我的完整工作示例:

来自JSP:

$.getScript("<%=request.getContextPath()%>/resources/js/my.js")
    .done(function(script, textStatus) {
        console.log(script);
        myFunction();
    })
    .fail(function(jqxhr, settings, exception) {
        $("div.log").text("Triggered ajaxError handler.");
    });

web应用\资源\ JS \ my.js

function myFunction() {
    console.log("Worked!")
}

答案 1 :(得分:0)

使用以下内容修复。参考 - &gt; this基本上从你们那里得到了关于全局变量的想法。

内部my.js

MyObject = {
        abc: function () {
            console.log("Worked")
        }
    }

我在MyObject.abc()

中以.done的方式调用它