2012-04-12 80 views
0

我有一个旧的和凌乱的网站,并试图开始整理一些jQuery代码,以使其更易于维护并希望将所有的document.ready函数都集成到一个调用中。问题是每个页面都有不同的集合,其中一些包含其自己的.ready函数。结合jQuery document.ready函数

我以为做的是把这个在主要页面的内容:

var documentReadyFunction = function() { 
    //do something 
}; 

而在我的头具有这种/脚本文件:

jQuery(document).ready(function() { 
    if (typeof documentReadyFunction != 'undefined') { 
     documentReadyFunction(); 
    } 
}); 

的正常工作,如果我能知道在一个地方需要所有的就绪功能,但我想要做的是从两个调用之间的文件中添加更多脚本以便在.ready中运行 - 关于如何实现此目的的任何建议,一个好主意?

回答

0

你可以试试这种方式;

<script type="text/javascript" > 
$(function(){ 
    init(); 
}); 

function init(){ 
    someFunction(); 
    //other init stuff 
} 

function someFunction(){ 
    } 
</script> 

(OR)如果你想有多个的document.ready你能做到这样:

从这里:http://www.learningjquery.com/2006/09/multiple-document-ready

$(document).ready(function() { 
    // some code here 
}); 
$(document).ready(function() { 
    // other code here 
}); 
1

不知道,如果你意识到这一点,但我很确定多次调用$(document).ready(fn)是允许的,它们不会覆盖原始函数,也可以调用它。

有关更多信息,请参阅http://www.learningjquery.com/2006/09/multiple-document-ready。请注意,如果其中一个出现错误,则不会执行以下功能。

+0

我意识到你可以做多个.ready调用,但是有一些函数需要按照某个顺序运行(例如,延迟加载图像和应用jcarousel需要以某种方式运行,以同时应用于同一组的图像)。我希望能够在他们使用的地方声明它们,然后以正确的顺序加载它们(相对于不得不绕过页面,所以它们的.ready()看起来是正确的。) - 我曾想过以某种方式创建一组函数,我总是会在开始时推送一个函数,而在另一端则推送一个函数。 – 2012-04-12 15:25:31