JQuery语法解释
JQuery Syntax Explaination
作为一名Java程序员,我最近一直在研究JavaScript,以便创建一个网站。我知道JavaScript中有以下方法:
function a(){
//Do something
}
然而,我不太确定以下内容的作用:
$(document).ajaxStop(function() {
$(this).unbind("ajaxStop"); //prevent running again when other calls finish
initialize();
});
我猜$(document)正在访问某种变量,但从哪里访问呢?有人能告诉我$(文件)到底是什么吗?在java中,典型的语法是Object.MethodName();这有点类似,但我不确定"$(文档)"是什么
在另一个例子中:
$( document ).ready()
它看起来是一个被方法调用的对象,但是,我不确定这些对象来自哪里。有人能解释一下这是怎么回事吗?我只熟悉面向对象的编程,这种带有$的引用/方法很令人困惑。如果我能帮忙澄清什么,请告诉我。
TL;博士
为什么周围有括号和美元符号:
$( document ).ready()
而不是
function a(){
//Do something
}
$
是jQuery附加库定义的一个函数,用于创建jQuery对象。它只是一个普通的Javascript函数,但它并没有内置在Javascript中——只有在首先加载jQuery库并且该库为该符号分配特定函数时,它才会出现。它实际上是一个名为jQuery
的函数的别名/快捷方式。因此,$(document)
与jQuery(document)
相同。
document
是由浏览器定义的全局变量,因此在浏览器Javascript中全局可用。
虽然$
看起来像是特殊的语言语法,但它只是Javascript中的一个普通符号,可以定义为任何其他符号都可以定义的任何符号。在jQuery库的情况下,它被定义为创建jQuery对象的函数。
$(document)
调用$
函数并传递一个参数(document
对象),该函数调用创建一个包含一个DOM节点(document
元素)的jQuery对象。jQuery对象是一个包含实例数据和一组方法的Javascript对象。jQuery对象的实例数据主要是DOM元素的列表。对象的方法通常对其包含的DOM元素列表执行操作。
$(document).ajaxStop(...)
创建上面的jQuery对象,然后对该对象调用ajaxStop()
方法。您可以在这里阅读该方法的jQuery文档。该方法的简短摘要是:注册一个处理程序,以便在所有Ajax请求完成后调用
你可以这样想:
var obj = $(document);
obj.ajaxStop(...);
但是,如果底层jQuery对象只需要一次,那么它可以在一行中完成,比如:
$(document).ajaxStop(...);
$( document ).ready(...)
对类似创建的jQuery对象调用.ready()
方法。该方法的文档在这里。该方法的简短摘要是:指定在DOM完全加载时执行的函数
为什么周围有括号和美元符号
$
符号只是一个Javascript函数。在jQuery库中,有这样的东西将$
定义为一个函数:
function jQuery(arg) {
// code to process the arg and return a jQuery object
return aJqueryObject;
}
// create an alias/shortcut for the jQuery function
var $ = jQuery;
因此,$()
只调用$
函数,这只是调用jQuery
函数的另一种方式。
$
(美元符号)。要使用任何与jQuery相关的函数,您需要使用此符号或单词jQuery
。
使用$(document)
意味着你想使用当前文档(你所在的整个页面,DOM),并可能对它做些什么。$(document).ready()
调用意味着你想要在文档(DOM)完全加载后立即做一些事情。这个函数在您的Javascript文件中使用如下:
$(document).ready(function() {
// Do something
});
您可以看到,在Javascript中,您可以将函数作为参数传递给函数。ready()
是一个在document
对象上调用的函数,它的参数是一个匿名函数(一个没有名称的函数,因为它没有名称,所以只能使用一次),您可以在其中编写要执行的代码。
这与您提到的第一块代码类似:
$(document).ajaxStop(function() {
$(this).unbind("ajaxStop"); //prevent running again when other calls finish
initialize();
});
这里,对document
对象调用ajaxStop()
函数,并将匿名函数作为参数传递。在这个匿名函数中,有两个函数要执行:$(this).unbind("ajaxStop")
和initialize()
。
- PubSub Design Pattern 的 Jquery 语法解释
- 解释Redux语法
- 你能解释一下这个JavaScript语法(变量外推)吗?
- JavaScript 语法解释 (function () { } )();.
- 语法:const {} = 变量名称,任何人都可以解释或指出我正确的方向
- 聚合物 - 有人可以解释一下聚合物中使用的this.$.foo.bar JavaScript语法
- 有人可以在 JavaScript 中解释这种函数包装语法吗?
- Javascript解释 - 语法/格式/风格对我来说是新的
- Ruby on Rails 和 angularJS:有人可以解释一下用法和语法吗?
- 有人能解释一下这个require.js示例中涉及的语法吗
- JSON语法-变量被解释为文字
- 解释了自执行函数语法和回调语法
- JQuery语法解释
- 解释(liveCats中的var cat)语法
- Javascript语法解释-条件性
- 此时间转换的语法解释
- 如何解释这个Javascript语法
- 有人能用Javascript解释一下这个语法吗;type=type||'fx'&”;
- 这些语法有什么不同,请详细解释
- 解释javascript代码语法