这可能是一个非常容易和新手的问题,我甚至不确定异步调用是否应该受到责备。但无论如何......
我正在使用jQuery及其函数在.php文件上添加外部脚本。 首先,让我们来看看我的外部js。 (test.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的异步调用,即在脚本真正添加之前执行我的函数。但谁知道呢?以前有人遇到过同样的问题吗?
答案 0 :(得分:5)
一旦AJAX脚本执行完毕,您应该调用该函数,这可能比文档就绪事件晚发生:
$.getScript('supervisor/cache/test.js', function() {
testFunc();
});
答案 1 :(得分:2)
由于您是异步检索脚本,因此在加载test.js之前,文档可能已准备就绪。这样做:
$.getScript('supervisor/cache/test.js', function(){
testFunc();
});