Javascript jQuery延迟无法正常工作

Javascript jQuery延迟无法正常工作,javascript,jquery,html,css,delay,Javascript,Jquery,Html,Css,Delay,我似乎无法更新我的文本,延迟0.8秒 function beginningText() { $('#bubbleText').text('H').delay(800); $('#bubbleText').text('He'); } .delay()阻止在同一语句上从它链接的代码,但不阻止在它之后的语句上的代码 从技术上讲,您需要的结构是: $('#bubbleText').text('H').delay(800).text('He'); 但是,这不起作用。因为一个非常不明显的原因(我只需要

我似乎无法更新我的文本,延迟0.8秒

function beginningText() {
 $('#bubbleText').text('H').delay(800);
$('#bubbleText').text('He');
}
.delay()
阻止在同一语句上从它链接的代码,但不阻止在它之后的语句上的代码

从技术上讲,您需要的结构是:

$('#bubbleText').text('H').delay(800).text('He');
但是,这不起作用。因为一个非常不明显的原因(我只需要抬头看看)
.delay()
对jQuery中“排队”的项目进行操作,例如动画和其他需要时间的项目。设置文本或任何其他此类“即时”操作不会“排队”,而是立即发生

您可以使用
.queue()
函数手动向队列添加操作:

$('#bubbleText').text('H').delay(800).queue(function(){
    $('#bubbleText').text('He');
});

您可能需要在此处设置超时,而不是延迟。 这里有

为你做了一把小提琴

示例代码

$(document).ready(function(){

function beginningText() {

    $('#bubbleText').text('H');
    setTimeout(function(){ $('#bubbleText').text('HE') }, 3000);

   }
 beginningText();

});

<div id = "bubbleText"></div>
$(文档).ready(函数(){
函数beginingtext(){
$('#bubbleText')。text('H');
setTimeout(function(){$('#bubbleText').text('HE')},3000);
}
开始文本();
});
根据jQuery文档

.delay()方法最适合在排队的jQuery效果之间进行延迟。例如,由于它的局限性,它没有提供一种取消延迟的方法。delay()不是JavaScript本机setTimeout函数的替代品,后者可能更适合某些用例

因此,需要注意的关键点是

  • 将.delay()用于jQuery效果,包括动画

  • setTimeout()最适合用于其他所有操作。例如,当你 需要在特定的时间内触发事件

  • 希望这能有所帮助


    快乐学习

    当文件加载时,它会直接说“他”,而不是“h”,然后说“他”@igetstuckalot:有趣。我刚刚学到了一些新的东西:)我用一个新的例子更新了答案:很抱歉,很烦人,但是如果我想在队列中添加其他东西(“hell”、“hell”、“hello”),我该怎么做?@igetstuckalot:在这种情况下,你应该在原始队列之后再链接更多调用
    .queue()
    。类似于
    blah().delay().queue(函数(){}).delay().queue(函数(){})当然,它可能很快变得丑陋。在Document ready中声明函数有什么好处吗?Document.ready中的代码将在加载文档后执行。如果您没有将其包装在ready中,那么可能会出现在加载文档之前加载脚本的情况。因此,不会有任何名为bubbleText的东西,您的代码将对其进行检查,但不会发现任何东西,也不会执行任何操作,或者如果您尝试使用它执行任何操作,则可能会给您未定义的内容。希望它能帮助我理解为什么函数调用在那里,我只是想知道为什么函数声明在那里。它可以移到外面。