Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该如何初始化jQuery?_Javascript_Jquery - Fatal编程技术网

Javascript 我应该如何初始化jQuery?

Javascript 我应该如何初始化jQuery?,javascript,jquery,Javascript,Jquery,我已经看到了(我也在使用它): 还有这个(我最近试过): 两者都很好 这两者有什么不同(除了外观上的不同) 哪个更适合使用?第一个示例在构建DOM树时运行该函数。 第二个示例立即运行该函数 如果仔细观察,在第二个示例中,函数声明后有两个括号(在这个特定的例子中,您将全局jQuery对象作为参数传递,以避免冲突),从而立即调用函数 要使用的正确函数取决于您希望函数何时运行。 如果要在DOMReady(ready事件)上运行函数,可以使用前面提到的$(document).ready或缩写$(func

我已经看到了(我也在使用它):

还有这个(我最近试过):

两者都很好

这两者有什么不同(除了外观上的不同)


哪个更适合使用?

第一个示例在构建DOM树时运行该函数。 第二个示例立即运行该函数

如果仔细观察,在第二个示例中,函数声明后有两个括号(在这个特定的例子中,您将全局
jQuery
对象作为参数传递,以避免冲突),从而立即调用函数

要使用的正确函数取决于您希望函数何时运行。 如果要在
DOMReady
ready
事件)上运行函数,可以使用前面提到的
$(document).ready
或缩写
$(function(){…})


否则,如果要立即运行函数并具有匿名函数作用域,请使用第二个示例。

我始终使用第一个示例。第二种似乎是防止jquery被重写的一种方法。您可能这样做的一个原因是,如果您不知道页面上将加载哪些其他脚本。如果您的所有内容都依赖于jQuery1.3,并且您所处的环境无法控制整个页面,那么如果有人在jQuery1.4中加载,您的代码可能会中断。听起来很难看,但这种事情确实发生过。因此,您可以在加载jquery后立即创建一个闭包,并将您的jquery版本保存在该闭包中,从而掩盖您的缺点。我想第二个例子就是这样


两个都没有实际初始化jquery。Jquery自己负责它需要的任何初始化。即使使用了第二个示例,您仍然很可能会使用第一个示例,您只需将$(document).ready放入第二个示例中的函数中。

您展示的第二个示例是一个自动执行的匿名函数。您使用的每个单独的JS文件都可能从中受益。它提供了一个私有范围,在该范围内,您使用
var
关键字声明的所有内容都只保留在该范围内:

(function($){
   var special = "nice!";
})(jQuery);

alert(special); // would be undefined
第一个例子是
$(document.ready
的简写,它在可以操纵DOM时触发

有几件很酷的事。首先,您可以在自动执行函数中使用它:

(function($){
   $(function(){
      // Run on DOM ready
   });

   // Run right away
})(jQuery);
其次,如果您只需要准备文档中的几行代码,那么您可以像下面这样组合私有作用域和DOM就绪函数:

jQuery(function($){
   // $ = jQuery regardless of what it means
   // outside this DOM ready function
});

除了前面的所有答案, jQuery有三种可以使用的初始化方法:

与大多数浏览器兼容的传统方法,请参见代码:

$(document).ready(function () {

        });
$(function () {

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

        });
简写法,请参见代码:

$(document).ready(function () {

        });
$(function () {

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

        });
隐式方法,请参见代码:

$(document).ready(function () {

        });
$(function () {

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

        });

它们都适用于现代浏览器,而且使用安全。

虽然这是一个古老的对话,但我想分享一下初始化jQuery的方法

;(function($, window, document) {

    // Your Code Goes Here

}(window.jQuery, window, document));

通过这一点,你可以确定没有什么会出错

我认为$(function(){…})是首选,因为它允许jQuery作者想出一种比“ready”事件更好的方法来运行这些初始化函数,并且您的代码仍然可以正常工作。我想我已经读到,事实上,对“ready”事件的显式绑定是不推荐的,除非您明确地知道您想要精确地进行绑定。嗯,有兴趣知道您的示例-
(function($){$(function(){
会有用吗?每当您有需要立即运行的代码时,另外在document ready中,最好将整个文件包装在
(函数($){…}(jQuery))中
然后您可以在任何需要的地方使用
$
而不会产生潜在冲突。然后,当您需要
DOM就绪时,只需使用
$(函数(){…})
我真的很喜欢这个答案!大量的信息,虽然被接受的答案很好,但你的答案是..很酷,为我的编程增加了价值..thx..唯一缺少的是noob我如何从html中调用它。。