我正在开发一个网页,该网页会提取一个包含我所有功能的外部javascript文件。我将该文件称为“functions.js”。
functions.js有一个jQuery有$(function(){...});
来完成页面准备时的操作。我的问题是,是否有可能在调用functions.js的同一页面的主体上写另一个$(function(){...}
,这样我在两个domReady函数中所做的一切都发生在页面上?例如,如果functions.js是:
$(function(){
$('div').css('color','green');
}
我把这段代码放在调用functions.js:
的页面上的标签中$(function(){
$('div').css('background-color','red');
}
页面最终会让我的div有绿色文字和红色背景,还是会覆盖另一个,或者不会有效?
我希望这是有道理的!
答案 0 :(得分:5)
是的,您可以根据需要添加任意数量的$(document).ready()调用:http://docs.jquery.com/Tutorials:Multiple_$(document).ready()
答案 1 :(得分:3)
你可以尝试一下你所知道的(它可能花费的时间少于你输入所有这些的时间):))
是的,两者都会运行并运作。
答案 2 :(得分:3)
是的,您可以根据需要编写任意数量的就绪函数。如果在关闭</body>
标记之前和jquery.js脚本之前放置代码,那么你真的不需要准备好的函数。
这是一篇写得很好的博客,内容涉及文档功能如何降低您的速度以及不应该使用它们的原因。 http://encosia.com/2010/08/18/dont-let-jquerys-document-ready-slow-you-down/
答案 3 :(得分:2)
您可以随心所欲地放置。
您甚至可以在jQuery中放置多个$(window).load(function() { ... })
(感谢cwolves)。
在JavaScript(没有jQuery)中,必须使用变通方法......
(function() {
var events = [];
var registerWindowLoadEvent = function(callback) {
events.push(callback);
};
window.onload = function() {
for (var i = 0, eventsLength = events.length; i < eventsLength; i++) {
events[i].call();
};
};
})();