【发布时间】:2017-03-23 20:29:56
【问题描述】:
我试图从外部加载的index.js 文件中调用 html 页面中的函数,但我总是得到
Uncaught ReferenceError: displayy is not defined
在我的 html 页面中:
<script type="text/javascript" src="index.js"></script>
<script>
$( document ).ready(function() {
displayy();
});
</script>
index.js 文件:
$( document ).ready(function() {
alert('loaded');
function displayy() {
alert('executed');
}
});
我也试过了:
<script>
window.onload = function() {
displayy();
};
</script>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
displayy();
});
</script>
【问题讨论】:
-
displayy未在您要调用的环境中定义。 -
@FelixKling 我如何在那里定义它?
-
@FelixKling 如果没有简单的方法可以做到这一点,我可以将整个
displayy函数移动到 html 脚本标记内并从那里运行它。这样它就可以工作了。 -
要么将函数定义移动到调用函数的位置,要么在全局范围内定义函数。 “我可以将整个
displayy函数移动到 html 脚本标签内并从那里运行它。” 是的,那么它是在全局范围内定义的。没有理由将声明放在document.ready回调中。查看learn.jquery.com/using-jquery-core/document-ready 以更好地了解何时需要 document.ready。
标签: javascript jquery html