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