【发布时间】:2019-10-14 18:57:26
【问题描述】:
我已经读过,要让 jQuery 工作,我必须有这个代码:
$(Document).ready(function(){
//some code
)};
但我不确定哪个文件首先编译到 application.js 中,那么我必须将该代码放在哪里以及如何将所有其他文件放入该文件中?
【问题讨论】:
标签: jquery ruby-on-rails
我已经读过,要让 jQuery 工作,我必须有这个代码:
$(Document).ready(function(){
//some code
)};
但我不确定哪个文件首先编译到 application.js 中,那么我必须将该代码放在哪里以及如何将所有其他文件放入该文件中?
【问题讨论】:
标签: jquery ruby-on-rails
相关:Why does jQuery or a DOM method such as getElementById not find the element?
相关:https://learn.jquery.com/using-jquery-core/document-ready/
准备好文档的目的是允许您在页面上的任何位置包含脚本,并且 javascript 将延迟其执行,直到文件标记被完全解析并加载到 DOM 中。图片和其他资源可能尚未加载,但文档元素将存在。
考虑到这一点,准备好文档不是要求。如果您在模式中构建文档,而不是在页面底部包含 javascript,或者至少在它将尝试引用的所有元素之后,则不需要准备好文档。一旦元素在 DOM 中,javascript 就可以找到它们。
旁注; sn-p 中的Document 应该是document,因为它区分大小写。
【讨论】:
您定义 application.js 中包含的文件,如果需要控制它们的加载顺序,您可以显式地require 它们。如果您使用require tree,文件将按字母顺序加载。
使用 jQuery 就绪模式的策略通常只是使用它来包装 initialize() 类型的函数调用,其中 intialize 是在您的 js 文件中其他地方定义的函数。如果您将大量代码放在文档就绪包装器中,则可能难以阅读,请保持简单。最好只使用一个文档就绪包装器,这样您就可以确定初始化顺序。
【讨论】: