如果我在启动时有很多函数,它们都必须在一个单一的:

$(document).ready(function() {

或者我可以有多个这样的声明?


当前回答

我认为更好的方法是把开关到命名函数(检查这个溢出关于这个主题的更多信息)。 这样您就可以从单个事件中调用它们。

像这样:

function firstFunction() {
    console.log("first");
}

function secondFunction() {
    console.log("second");
}


function thirdFunction() {
    console.log("third");
}

这样就可以在一个就绪函数中加载它们。

jQuery(document).on('ready', function(){
   firstFunction();
   secondFunction();
   thirdFunction();

});

这将输出以下到您的console.log:

first
second
third

这样就可以为其他事件重用这些函数。

jQuery(window).on('resize',function(){
    secondFunction();
});

检查这小提琴的工作版本

其他回答

我认为更好的方法是把开关到命名函数(检查这个溢出关于这个主题的更多信息)。 这样您就可以从单个事件中调用它们。

像这样:

function firstFunction() {
    console.log("first");
}

function secondFunction() {
    console.log("second");
}


function thirdFunction() {
    console.log("third");
}

这样就可以在一个就绪函数中加载它们。

jQuery(document).on('ready', function(){
   firstFunction();
   secondFunction();
   thirdFunction();

});

这将输出以下到您的console.log:

first
second
third

这样就可以为其他事件重用这些函数。

jQuery(window).on('resize',function(){
    secondFunction();
});

检查这小提琴的工作版本

是的,你可以很容易地拥有多个区块。只是要小心它们之间的依赖关系,因为求值顺序可能不是您所期望的。

是的,可以有多个$(document).ready()调用。然而,我不认为你能知道他们将以何种方式执行。(源)

是的,这是可能的,但你可以更好地使用一个div #mydiv和使用两者

$(document).ready(function(){});

//and

$("#mydiv").ready(function(){});

这是合法的,但有时会导致不良行为。作为一个例子,我使用MagicSuggest库,并在我的项目的一个页面中添加了两个MagicSuggest输入,并为每个输入的初始化使用了单独的文档就绪函数。第一个输入初始化成功了,但第二个没有,也没有给出任何错误,第二个输入没有显示。所以,我总是建议使用一个文档准备函数。