1

函数也是如此jQuery(),文档是用作jQuery()函数参数的对象。

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

4

4 回答 4

3

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

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

jQuery 有一个ready方法,因此您可以在任何 jQuery 对象上调用它。使用$().ready()or$(document).ready()$('whatever').ready()- 它总是会做同样的事情:

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

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

    return this;
},

如您所见,this仅返回用于链接 - 函数的实际逻辑根本不使用它。

于 2012-04-26T09:14:02.500 回答
1

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

它返回一个jQuery 对象

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 层次结构,就可以运行脚本。传递给 .ready() 的处理程序保证在 DOM 准备好后执行,因此这通常是附加所有其他事件处理程序并运行其他 jQuery 代码的最佳位置...

于 2012-04-26T09:15:11.927 回答
1

参考 jQuery 文档:

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

于 2012-04-26T09:16:47.043 回答
1

如果您使用 typeof 文档,您将获得对象,因此 jQuery(document) 将给出文档的 jQuery 对象。

您可能已经像 $(this) 一样将其视为 jQuery 对象。使用 javascript 关键字 this 我们可以调用所有 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 显示 undefined 清楚地表明它不知道 dom 和 $(document).ready 在 jquery 的帮助下显示它的定义

于 2012-04-26T09:24:19.677 回答