我有 2 个文件。
主.js 实用工具.js
主.js
$(document).ready( function() {
function instantiate_point_clouds(viewer_settings, cloud_meta) {
}
})
实用工具.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执行异步调用,不管这不应该像我在 trick.js 之前调用 main .js那样工作。该函数存在于main中.js但说如果从utils.js调用则未定义,这与$(document).ready()有关吗?
在
$(document).ready()
因此,它将在页面加载时被解析并可用于$(document).ready()
正如 Isaac Abramowitz 在注释中所说,当您在示例代码中定义函数时,您是在传递给$(document).ready()
匿名函数的范围内执行此操作,第二次调用(无论是否在同一文件中)无法到达,因为它们不共享范围。有关此主题的更多信息,请参阅此处
顺便说一句,你可以只使用$(function(){})
而不是$(document).ready()
.