【问题标题】:Are $(function(){}); and $("document").ready(function(){}); the same?是 $(function(){});和 $("document").ready(function(){});相同?
【发布时间】:2011-05-22 01:02:08
【问题描述】:

我一直在享受 Lynda.com 的 Jquery Essential Training,我注意到在开始时讲师使用:

    Fig. 1

    $("document").ready(function(){
    fun stuff goes here
    });

然而,在他开始使用的某个地方:

    Fig. 2

    $(function(){
    fun stuff goes here
    });

从他说话的方式来看,它们听起来好像完全是同义词(某种固有的 jquery 简写?),但据我所知,从未明确提及。

我相信有人可以为我快速解决这个问题。我找到了this,但我相信这个问题略有不同——我理解在文档就绪时调用函数与全局可用函数的概念; (这些函数也有名称。)

讲师使用幻像函数(我认为这是没有名称的函数的术语),在输入图 2 时,他说“所以这将在文档准备就绪...”

【问题讨论】:

  • 继续学习,如果您遇到任何好东西,请告诉我们
  • 不是幻象功能。匿名函数!
  • 哈哈哈,在最后一章他谈到了我的问题!

标签: javascript jquery


【解决方案1】:

是的,它们完全一样,只是别名。

From the jQuery site:

以下三种语法都是等价的:

$(document).ready(handler)
$().ready(handler) (this is not recommended)
$(handler)

【讨论】:

    【解决方案2】:

    默认上下文是文档,所以如果你传入一些不引用 HTML 节点的随机 mumbo jumbo 字符串,它将是文档。

    $('fdsljkfdslj').context 是文档。由于默认上下文是文档,这意味着您不必指定它,只需将函数提供给 jQuery,$(function() { });

    我认为你的意思是$(document),因为指定字符串文档并不流行,因为document 将真实的文档对象传递给jQuery。但同样,这与不传递任何内容或传递 mumbo jumbo string 相同,因为我们按字面传递 document

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      相关资源
      最近更新 更多