2012-04-26 76 views
1

所以jQuery()是一个函数,document是用作jQuery()函数参数的一个对象。你如何解释jQuery(document).ready()?

我想,jQuery(document)函数然后返回一个对象,它有一个ready()方法?这是对的吗? jQuery(document)返回什么样的对象?

+11

'的jQuery(文档)'返回一个jQuery它的定义明确指出它不知道DOM和$(文件)对象,包含'document' DOM元素。它与每个其他'$(x)'选择器相同,它返回包装在jQuery对象中的DOM元素。 – 2012-04-26 09:12:39

回答

3

jQuery使用了很多魔法(例如为了避免使用new)。

jQuery(...)总是创建一个新的jQuery对象,它包含零个或多个传递给它的元素(取决于参数)。

jQuery有一个ready方法,所以你可以在任何jQuery对象上调用它。如果你使用$().ready()$(document).ready()$('whatever').ready()没关系 - 它总是会做同样的事情:

ready: function(fn) { 
    // Attach the listeners 
    jQuery.bindReady(); 

    // Add the callback 
    readyList.add(fn); 

    return this; 
}, 

正如你所看到的,this只返回链接 - 函数的实际逻辑不使用它根本就没有。

+0

我想JavaScript是一种面向对象的语言,它具有类(类型)的概念?所以有一个叫做jQuery的类? jQuery函数属于哪个类? – Aperture 2012-04-26 09:17:51

+2

JavaScript没有类,它有对象。尽管这不在评论的范围之内 - 但是在这里有很多关于这方面的高票(=>好)的问题/回答。但是,无论如何,这里有一个简短的答案:'jQuery()'是一个*构造函数*,它包含魔法,即使没有'new'也能正常工作。 – ThiefMaster 2012-04-26 09:18:41

+0

ThiefMaster的评论是完全准确的,但如果您对某种形式的面向对象支持的语言不熟悉,可能会产生误导。 Javascript可以用于OO时尚。 “class”这个词是Javascript中没有太多意义的部分。我也同意这个问题超出了这个特定问题的范围。 – 2012-04-26 09:26:05

1

jQuery(document)返回什么样的对象呢?

它返回一个jQuery object

jQuery对象包含文档对象模型(DOM)已经从HTML字符串创建或从一个文件选择的要素的集合。

jQuery方法本身被记录在这里:http://api.jquery.com/jQuery/#jQuery1

此函数的第二和第三制剂创建使用以某种其它方式已经选择了一个或多个DOM元素jQuery对象。该工厂的一个常见的用途是调用已传递给回调函数的元素jQuery的方法...

jQuery(...)功能也常用于缩写$(...),如:

$(document) 

基本上它是jQuery库中的第一个常用钩子。你会经常看到这样使用:

$(document).ready(function() { 
    // This code gets called once the document has finished loading 
    // to the point where you'd want to use the jQuery library against the DOM 
}); 

这里是关于.ready方法的文档:

虽然JavaScript提供用于执行代码的加载事件当一个页面被渲染时,这个事件不会被触发,直到所有资源(如图像)都被完全接收。在大多数情况下,脚本可以在DOM层次结构完全构建后立即运行。处理程序传递给。准备就绪()保证后的DOM准备好执行,因此,这通常是连接的所有其他事件处理程序和运行其它jQuery代码的最佳场所......

1

参考jQuery文档:

http://api.jquery.com/jQuery/ - 您对jQuery函数的jQuery(element)版本感兴趣。它将您传递的元素包装在新的jQuery对象中。然后这个对象包含一个.ready()方法,您可以在其中传递一个事件处理函数作为函数。

1

如果你把typeof文件,你会得到对象,所以jQuery(文档)会给文档的jQuery对象。

你可能已经做了像$(this)一样把它当作jQuery对象。使用javascript关键字,我们可以调用所有的dom方法/属性,但不能使用jQuery方法和属性,这与$(this)类似,我们可以调用所有的jquery方法/属性,但不能调用基本的dom方法和属性。

现在$(document).ready()意味着让dom对象文档将其转换为jQuery对象并将准备好的函数附加到它。

下面是我在Chrome控制台给出的几个命令来解释它。

typeof document 
"object" 

$(document).ready 
function (a){e.bindReady(),A.add(a);return this} 

document.ready 
undefined 

这里的document.ready显示不确定的。就绪显示与jQuery的帮助

相关问题