我有2个文件。
main.js utils.js
main.js
$(document).ready( function() {
function instantiate_point_clouds(viewer_settings, cloud_meta) {
}
})
utils.js
$(document).ready( function() {
instantiate_point_clouds(viewer_settings, cloud_meta) ---> This is
Uncaught ReferenceError: instantiate_point_clouds is not defined
})
这就是我调用这些js文件的方式。
<html>
<head>
<script src='/js/main.js'>
</head>
<body>
<script src='/js/utils.js'>
<body>
</html>
instantiate_point_clouds函数会执行异步调用,无论它是否在我在util.js之前调用main.js时都不起作用。该函数存在于main.js中,但说如果从utils.js中调用则未定义,这是否与$(document).ready()有关?
答案 0 :(得分:1)
在
之外定义功能$(document).ready()
因此它将在页面加载时进行解析,并可以在$(document).ready()
上使用
正如注释中的Isaac Abramowitz所述,当您在示例代码中定义函数时,您正在将要传递给第二次调用的$(document).ready()
的匿名函数范围内进行此操作(无论是否在同一文件中)都无法达到,因为它们不共享作用域。有关该主题的更多信息,请参见here
顺便说一句,您只能使用$(function(){})
而不是$(document).ready()
。