正确使用OnDOMReady功能

时间:2012-07-02 11:57:14

标签: javascript jquery

以下关于DOM就绪函数,如果我有两个使用此声明的函数:

$(document).ready(function(){my Function here});

现在我应该使用两个标签,每个功能一个标签,还是应该在其中一个标签中声明这两个标签,都位于:$(document).ready(function(){my two Functions here});内?

<script>
    $(document).ready(function(){my Function here});
</script>

谢谢

4 个答案:

答案 0 :(得分:2)

你可以使用两个。它没有任何危害,这使您可以进行模块化编码。例如,它允许您将相关的代码片段保存在一起。

例如,假设您有两个JavaScript小部件,它们彼此独立,都在它们自己的单独文件中,两者都存在于页面上的不同位置,它们中的任何一个可能存在于页面上,也可能不存在。您可以像这样分开它们,而不是创建一个大杂烩的脚本:

<script>
    var ads = {};
    $(document).ready(function(){
        // do something with ads
    });
</script>

<script>
    var tracker = {};
    $(document).ready(function(){
        // do something with tracker
    });
</script>

答案 1 :(得分:1)

您可以使用不同的功能多次调用$(document).ready()。他们都将受到这个事件的约束,除非你将它们包含在活动发生之后(包括通过带有$.getScript()的AJAX)。

您不应将代码直接包含在HTML中。

将其粘贴在一个或多个外部文件中,并使用src引用它们。

这样他们就可以轻松缓存,用户不会在每次加载页面时重新下载相同的内容。

此外,您可以构建不同的就绪文件以满足不同的目的。一个初始化外部插件。一个运行一些事件绑定。一个适用表格验证。

将它们放在不同的文件中意味着您还可以在需要时包含这些文件。在商店的所有页面上可能需要onReady.ShoppingCart.js,但不能在该商店的CMS页面上,而不是在结帐通道上。

答案 2 :(得分:1)

ready()(与内联onload=""相对)的目的是允许多个处理程序绑定一个事件。

所以,只要对你使用最简单/最清楚,当互联网为了摆脱使用内联处理程序而进行过多次打击时,禁止多次绑定将是愚蠢的。

答案 3 :(得分:0)

使用一个。使代码更易于管理,因此您可以在一个地方看到所有被调用的函数。

相关问题