jQuery中的空大括号

jQuery中的空大括号,jquery,Jquery,在片段中, $({}).queue(函数(下一个){}) $({})代表什么?人们为什么使用这种形式 我从中获得了代码。每当没有上下文传递到jQuery对象时,上下文就是 设置为“文档”。由于$()没有上下文,因此上下文 默认为文档。与执行$([])ans$({})相同。更新的答案 您认为您在引用中的代码会显著地改变事情 答案中的代码是: $(document) .queue(callMe1) .queue(callMe2); …然后有一条评论建议使用{}而不是文档: $({})

在片段中,
$({}).queue(函数(下一个){})
$({})
代表什么?人们为什么使用这种形式


我从中获得了代码。

每当没有上下文传递到jQuery对象时,上下文就是 设置为“文档”。由于$()没有上下文,因此上下文
默认为文档。与执行$([])ans$({})相同。

更新的答案

您认为您在引用中的代码会显著地改变事情

答案中的代码是:

$(document)
  .queue(callMe1)
  .queue(callMe2);
…然后有一条评论建议使用
{}
而不是
文档

$({})
  .queue(callMe1)
  .queue(callMe2);
您可以这样做来建立一个调用链,在该链中,后续调用直到前一个调用说它们已经完成后才会发生。它们可以是同步的,也可以是异步的。这是一种早期的承诺

让我们举一个例子:假设我想做三件事,一件接一件,每件事都可能做或者不做异步的事情,比如动画。我们可以这样做:

$({}).queue(theFirstThing)
     .queue(theSecondThing)
     .queue(theThirdThing);
…直到较早的函数说它们已经完成,以后的函数才会被调用

例如:

$({}).queue(第一个)
.队列(第二个)
.队列(第三个);
函数的第一项(下一项){
//我所做的是异步的:淡出a1元素,
//然后调用链中的下一个函数(如果有)
$(“#a1”)。淡出(“慢”,下一个);
}
第二个功能(下一个){
//我所做的是同步的
$(“Hi there

”).appendTo(document.body); //链到下一个(如果有的话) next(); } 第三个函数(下一个){ //我所做的是异步的:淡出a2元素, //然后调用链中的下一个函数(如果有) $(“#a2”)。淡出(“慢”,下一个); }
a1
a2
a3
我以前在实例化一个变量时使用过$({}),该变量稍后将被一个真实的JQuery对象替换,因此在出现意外结果时,原始值仍然是一个有效的JQuery对象。在那种情况下,可能真的没有必要


经检查,$()和$({})之间的一个主要区别是.length的值。分别为0和1。好的问题和对话+1

谢谢!那为什么不干脆用$()?-如果它的意思和“文件”的意思一样,为什么它不起作用呢?@Jenn现在感谢还为时过早;这个答案不正确。@nicael谢谢你nicael;)这肯定很奇怪。谢谢你,T.J。!是的,T.J.我在这里@JenniferMassey发现了它:
$(文档)。队列(…)
$({})非常不同。队列(…)
,以及多个
。队列
调用改变了单次调用。我认为这个问题及其答案解释了为什么他们会很好地使用它。@JenniferMassey:我已经更新了答案,以解决另一个问题及其答案中的代码。T.J。非常感谢你的努力。我开始明白其中的道理,还有很多东西需要消化;)“在这种情况下,可能真的没有必要。”其实没有必要,只要使用
$()