0

我正在JavaScriptjQuery. 我将JavaScript源代码和HTML 页面添加jQuery到 HTML 页面中,并注册我的函数以在页面完全呈现时调用。

<script type="text/javascript" src="lib/jquery-1.8.0.js"></script>
<script type="text/javascript" src="src/myapp.js"></script>
<script type="text/javascript">$(MyApp.onReady)</script>

它可以工作,但我不喜欢在 HTML 中包含代码。

现在我想知道我是否可以摆脱最后一行。是否绝对有必要$(MyApp.onReady)在 HTML 中调用?

4

6 回答 6

2

document.ready您可以回复myapp.js文件中的 a。这将确保 DOM 树可以使用:

$(document).ready(function () {
    // do whatever you want here, confident that the DOM is loaded
});

如果您需要等到整个页面在浏览器中呈现(图像等),您可以响应 load 事件:

$(window).load(function() {
    // everything is rendered in the browser
});

您通常不需要等到load,我建议您先尝试第一个片段,然后再使用第二个片段。

于 2012-08-15T15:09:39.153 回答
1

$(document).ready当html控件的所有渲染完成时调用,您可以将代码放在此方法中或在其中调用您的方法

$(document).ready(function(){
    //your code here
    //$(MyApp.onReady) 
});
于 2012-08-15T15:08:14.023 回答
1

你可以把$( MyApp.onReady );线放在里面myapp.js。您需要注意的是在jQuery加载文件之前加载。

于 2012-08-15T15:08:53.090 回答
1

您可以将此代码添加到 myapp.js 文件的尾部,例如:

/* myapp.js */
var MyApp = (function(app, $) {
    // your logic...
    // defining app.onReady function...
    $(function() {
        app.onReady();
    });

    return app;
})(MyApp || {}, jQuery);
于 2012-08-15T15:10:03.993 回答
1

你需要打电话给MyApp.onReady()某个地方。如果您将访问 DOM(您可能会访问),是的,您必须等到 DOM 被处理。您可以通过在结束标签之前document.ready放置MyApp.onready()一个权利来避免使用。到那时,DOM 将已经被解析。但是,如果您不访问 DOM,则可以在任何地方进行操作。scriptbodyMyApp.onReady()

于 2012-08-15T15:12:15.563 回答
1

看看这个问题:Running javascript after page is fully rendering

基本上,您似乎想为 window.onload 设置一个函数,这将在页面呈现后运行。由于我看不到你的 myapp.js,我不知道 onReady 函数在那里做什么。您是否保留该行取决于该功能的作用。正如 Grampa 所说,您可以将该行放在 javascript 文件中。

于 2012-08-15T15:12:57.987 回答