2011-03-14 235 views
0

之间有什么区别之前:jQuery选择功能

$(function() { 

    }); 

这:

function HideDiv() { 

    } 

我第一次知道是jQuery的功能和第二个是JavaScript函数。 但我不知道为什么它将选择器'$'放在函数关键字之前。 我认为jQuery选择是寻找一个HTML元素,例如这样的:

$("#loading").hide('fade'); 

找到名为装载的元素,并隐藏。 关于。

+1

给这个看看它的很多内容,但将极大地帮助http://jqfundamentals.com/book/index.html – stanwilsonjr 2011-03-14 15:54:41

回答

3

$是jQuery的简写形式,表示jQuery对象。这方面是基本上的简写:

 
jQuery(document).ready(function() 
{ 


}); 

,并作为用于当在页面加载执行码的onDOMReady功能。您从根本上“找到”文档元素并在完成加载后运行脚本。

第二个就是一般的功能

2

的差别是非常大的!

function HideDive(){ 

} 

创建名为功能,您可以稍后致电为:HideDiv

$(function() { 

}); 

有些事情会完全其它:它会注册一个匿名功能使用jQuery,基本上是说:当页面完成加载后,请调用此函数。

$(...);表示法是一种简写形式,意思是jQuery(document).ready(...)

希望这个清除它!

1

前者是一个匿名函数,在DOM被ready与jQuery交互时被调用。它是类似的:

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

后者是一个命名函数,可以通过它的范围内的任何代码调用。

另一个有趣功能语法为:

(function() { 
    // ... 
})(); 

其是self-executing function

2

这两个函数都涉及函数,但上下文有些不同。第一:

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

是两种功能:调用和功能定义。调用的是jQuery函数本身,其别名是“$”。函数调用有一个参数,该参数是一个匿名函数。 jQuery函数将通过保存对匿名函数的引用来响应此函数调用,然后当文档准备好时—它将调用您的函数。

第二种形式只是一个简单的JavaScript函数定义语句。它创建一个名称可由同一范围内的其他代码或任何词法封闭的范围调用的函数。

1

第一个函数(“jQuery函数”)在技术上仍然是JavaScript函数,因为jQuery只是一个JavaScript库。但是,在这个特定的情况下,这个函数对jQuery来说意味着特别的东西。具体而言,它是ready函数,意味着它将在DOM准备就绪后运行(AKA,页面已加载)。

第二个功能是“常规”功能。这可以从JavaScript代码的其他部分调用(包括jQuery代码,如果您记得,它是JavaScript)。这使您可以封装您可能反复使用的各种操作或信息片段(而不是反复重复)。您可以将二者结合起来,同时,这样的:

$(function() { 
    // Call the function... 
    MyFunctionToDoSomething(); 
}); 

function MyFunctionToDoSomething() { 
    // Do stuff here. 
} 
1

首先是$(文件)。就绪速记(函数(){})虽然没有在1.4以后的工作,我相信。我可以看到它很容易与基于语法的匿名函数混淆。

一个典型的匿名函数看起来就像没有$的第一个例子。有关匿名函数如何工作,请参见Why do you need to invoke an anonymous function on the same line?

第二个是标准的JS函数(它也是一个可实例化的对象)。