来自jQuery的未捕获的ReferenceError

时间:2017-03-04 23:55:21

标签: jquery typescript

当在通话下方定义功能时,我得到Uncaught ReferenceError: fun is not defined

我尽可能地简化了我的脚本来重现错误

fun();

function fun() {
}

var promise = new Promise((resolve, reject) => call(resolve, reject));

const call = (success, error) => { };

我得到了这个例外

Uncaught ReferenceError: fun is not defined
    at eval (eval at globalEval (jquery.js:545), <anonymous>:1:1)
    at eval (<anonymous>)
    at Function.globalEval (jquery.js:545)
    at text script (jquery.js:7617)
    at ajaxConvert (jquery.js:7592)
    at done (jquery.js:7350)
    at XMLHttpRequest.<anonymous> (jquery.js:7822)
    at Object.send (jquery.js:7845)
    at Function.ajax (jquery.js:7301)
    at Function._evalUrl (jquery.js:5880)

如果我删除var promise行或将call(resolve, reject)替换为{}似乎有效,但我无法理解原因。

  

jQuery版本2.0.3

为什么会发生这种情况?

编辑:我还有与jQuery的globalEval相关的其他问题,我通过将jQuery脚本标记移动到最后一个来解决它们,但仍然没有帮助。

1 个答案:

答案 0 :(得分:0)

<head>
    <script src="Scripts/jquery/jquery.js"></script>

    <script>
        function run() {
            var toReload = "app.js";
            $('script[src="' + toReload + '"]').remove();
            $('<script>').attr('src', toReload).appendTo('head');
        }
    </script>
</head>
<body>
    <div id="content">
        <button onclick="run()">Run</button>
    </div>
</body>

我正在动态加载我的代码,jQuery变得混乱。在jQuery解决之前将我的脚本移动到脚本标记中。