javascript - 异步 JavaScript 不允许我的函数返回?

标签 javascript jquery function asynchronous

这可能是一个非常简单且新手的问题,我什至不确定异步调用是否是罪魁祸首。但无论如何...

我正在使用 jQuery 及其函数在 .php 文件上添加外部脚本。 首先,让我们看看我的外部js。 (测试.js):

function testFunc () {
  alert('It works!');
}

然后我的 .php 文件包含以下脚本:

<script>
$.getScript('supervisor/cache/test.js');
$(document).ready(function() {
  testFunc();
});
</script>

使用此方法,不会调用 testFunc();。我尝试在调用之前插入 return,将其放在 ready 函数之外,将 $.getScript 放在 ready 内部> 功能。好吧,我不知道还能尝试什么。 另外,如果我在按钮中使用 onClick 调用相同的函数,它将起作用。 这就是为什么我认为问题可能出在 jQuery 的异步调用上,即在脚本真正添加之前执行我的函数。但谁知道呢?有人遇到过同样的问题吗?

最佳答案

您应该在 AJAX 脚本完成执行后调用该函数,这可能会晚于文档就绪事件发生:

$.getScript('supervisor/cache/test.js', function() {
    testFunc();
});

关于javascript - 异步 JavaScript 不允许我的函数返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143125/

相关文章:

javascript - d3 在 setInterval 上闪烁线

javascript - 使用 jQuery 设置新的 id

javascript - HTML5 音频playbackRate 属性不适用于移动浏览器?

javascript - 如何在 Node JS 中本地和外部调用函数(从两个不同的文件调用)

javascript - 使用 javascript 删除相似的文本并与其他文本连接

javascript - 读取父状态的值并将 bool 值传递给子组件React

javascript - 使用扩展将数组映射到对象

javascript - Handsontable:将列作为参数数组从服务器传递

带指针的 C 函数在一台计算机上工作,在另一台计算机上不起作用

matlab - 检查 Matlab 函数的输入参数是否存在