'$'在此代码中的含义是什么?

时间:2013-10-02 12:01:49

标签: jquery

<script>
jQuery(function($) {
    $('#container').jstree();
});
</script>

$被传递到匿名函数,这是什么意思?

9 个答案:

答案 0 :(得分:2)

jQuery Documentation

美元符号($)实际上是jQuery函数的别名。根据文档,如果您将回调作为参数传递给此函数,它将在DOM准备就绪时执行。

答案 1 :(得分:2)

阅读Documentation

jQuery(function( $ ) {
  // Your code using failsafe $ alias here...
});

$(function() {
  // Document is ready
});
  

同时使用$(document).ready()的快捷方式和参数to   使用$ alias编写failafe jQuery代码,而不依赖于   全球别名。

答案 2 :(得分:1)

它使“$”成为局部变量,从而优雅地避免与可能使用“$”符号的任何其他变量发生冲突。

这些函数都做同样的事情 - 在DOM准备好时执行一些代码。

接受函数作为参数的“$”和“jQuery”被创建为快捷方式,以避免重复这样的常见构造。接受一个接受$作为其第一个参数的函数是一个进一步的语法糖 - 现在你可以方便地完成闭包而无需自己动手。

答案 3 :(得分:1)

http://api.jquery.com/jQuery/#jQuery3

jQuery(function( $ ) { // Your code using failsafe $ alias here... });

答案 4 :(得分:0)

$jQuery的别名。

所以你也可以写jQuery('#container').jstree();

答案 5 :(得分:0)

代码看起来像是在JavaScript中Module Pattern的尝试。好处是匿名函数有一个闭包,有助于维护变量的隐私,并维护其局部变量和函数的状态。

实现模式的正确方法是:

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

其中(...)()是IIFE(立即调用Function Expression)的示例。函数表达式由尾随()调用,如果它包含jQuery,则会将jQuery函数作为$传递到匿名函数的作用域,因为它就是它的含义作为参数名称。这种模式的好处是人们可以编写jQuery插件,并可以维护自己的jQuery函数和变量副本,并根据需要调用它们,这有助于解决名称冲突。

当前接受的答案是错误地解释了文档,这只是声明如果你有一个函数声明,你可以通过将文件传递给jQuery函数来执行它作为回调,这相当于jQuery的$(document).ready(function(){...});

答案 6 :(得分:-1)

JQUERY DOC :

jQuery() — which can also be written as $() — searches through the DOM ...

因此:

$( "div.foo" );等于jQuery( "div.foo" );

答案 7 :(得分:-1)

简而言之: $是指由JQuery设置的全局变量,用于表示自己。

不那么短: Javascript变量命名约定允许您使用&#39; $&#39;,&#39; _&#39;来启动变量。或类别“大写字母(Lu)”,“小写字母(Ll)”,“标题字母(Lt)”,“修饰符字母(Lm)”,“其他字母(Lo)”或“”中的任何有效unicode字符字母编号(Nl)“。

因此,您可以拥有变量$或_。很多javascript框架/库/东西利用这个事实来缩短他们的调用。

答案 8 :(得分:-1)

所以在JQuery(Javascript库)中,美元符号是JQuery函数的别名/引用。

在这种情况下,第一行相当于$(document).ready(),它等待DOM在运行之前完成加载。

另外一个词,你想在DOM完成加载后运行的函数(几乎所有函数都是你想要放在里面的函数),就像jstree()一样。

Here is a relevant S.O. question

Here is a link to JQuery Documentation on Callbacks