首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery页面加载

jQuery页面加载
EN

Stack Overflow用户
提问于 2010-02-10 04:33:25
回答 2查看 8.8K关注 0票数 16

我看到人们在jQuery中使用所有这些不同的技术。我知道第二种技术将在页面加载时运行。但是第一个和第三个函数什么时候启动呢?第三种技术是用在插件中来避免冲突,对吧?但是它肯定会在页面加载之前触发吗?我还添加了第四个技巧。我想知道你什么时候应该/不应该使用每种技术。如果他们中的任何一个是假的,让我知道!

第一个

代码语言:javascript
复制
(function($) {

})(jQuery);

第二位

代码语言:javascript
复制
$(document).ready(function(){

});

第三

代码语言:javascript
复制
$(function(){

}());

第四位

代码语言:javascript
复制
jQuery(function($) { 

}); 

第五位

代码语言:javascript
复制
(function(){

})();
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-10 04:40:24

更新他已经更改了问题中的呼叫列表,所以我正在更新以匹配。

第一个是黑客攻击,以避免与可能分配$的其他库发生冲突。它不是ready处理程序。第二个和第三个是ready事件处理程序。

来自the jQuery API reference

以下三种语法都是等效的:

  • $(document).ready(handler)
  • $().ready(handler) (这不是recommended)
  • $(handler)

因此,尽管这三种方法做的是相同的事情,但避免使用第二种方法。

在jQuery 1.3中,$()等于$(document)This is no longer true in 1.4

第四个在我看来像是一个语法错误。它本质上分配了一个新的就绪处理程序,但它传递了一个带有名为$的参数的函数。因为这是一个事件处理程序,所以jQuery将在第一个参数中传递事件信息。您通常不希望$表示事件信息。

第五个函数定义了一个新函数,然后立即调用它,不传递任何参数。所以这就是:

代码语言:javascript
复制
(function(){
    alert("Hi!");
})();

意思与此相同:

代码语言:javascript
复制
alert("Hi!");
票数 12
EN

Stack Overflow用户

发布于 2010-02-10 04:35:59

第1个-将$赋值给jQuery,仅在括号内使用(无冲突版本);第2个是普通版本,第3个是速记:)

更多信息:http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Overriding_the_.24-function

编辑:哦,是的,简写是:

代码语言:javascript
复制
$(function() {
  // your code
});

(函数()括号后无括号)

编辑:在长时间阅读我自己的链接后,似乎第一个链接可能只包装了部分代码,其中$符号被分配给jQuery,但您仍然必须使用$(document).ready()

编辑:对于更新的列表:第5种类型:检查其他答案,我不知道该类型。

代码语言:javascript
复制
jQuery(function($){

});

然而,第四个是用于: 1.将$附加到jQuery,临时重载(在括号内)任何框架,全局使用$速记(即原型),也是document.ready语句。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2232341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档