当在通话下方定义功能时,我得到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脚本标记移动到最后一个来解决它们,但仍然没有帮助。答案 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解决之前将我的脚本移动到脚本标记中。