$(document).ready的不同用法

时间:2012-04-16 22:33:18

标签: javascript jquery

将$(docu ...)与你在里面定义的变量和函数一起使用有什么区别/优点,从使用函数然后在$(docu ...)中调用它

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

过度使用:

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

2 个答案:

答案 0 :(得分:5)

这四个选项都会产生完全相同的结果,灵活性下降:

示例#1

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

function initialize(){
    hello();
}

示例#2

$(document).ready(initialize);

function initialize(){
    hello();
}

示例#3

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

示例#4

$(document).ready(hello);

在第一个示例中,您将创建一个将在document.ready时调用的匿名函数。该匿名函数调用单独的函数initialize()。因为initialize()是一个单独的函数,所以它也可以被其他代码调用。

在第二个示例中,您只需避免使用匿名函数并直接传递对initialize函数的引用。这比第一个示例稍微快一点(少一个函数调用),但如果你想从initialize()处理程序调用除document.ready()之外的多个函数,则灵活性会降低。

在第三个示例中,您只需删除外部initialize()函数,并从匿名函数中调用其中的一个内容。

在第四个示例中,匿名函数再次被删除,您只需直接引用hello函数,这样就可以直接调用它而无需任何干预函数。

第一个选项为您提供最大的灵活性,因为您可以在initialize()内调用多个内容,也可以从程序中的其他位置调用initialize()。如果您不需要这些灵活性,您可以选择其他四个选项中的任何一个,因为它们都会产生相同的结果,每个选项的灵活性都会降低一些。

答案 1 :(得分:4)

在第一个示例中,您可以稍后再次使用initialize功能。如果您将hello代码直接放在$(document).ready()的函数中,则以后不能再次引用该代码。