以下关于DOM就绪函数,如果我有两个使用此声明的函数:
$(document).ready(function(){my Function here});
现在我应该使用两个标签,每个功能一个标签,还是应该在其中一个标签中声明这两个标签,都位于:$(document).ready(function(){my two Functions here});
内?
<script>
$(document).ready(function(){my Function here});
</script>
谢谢
答案 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)
使用一个。使代码更易于管理,因此您可以在一个地方看到所有被调用的函数。