我似乎无法更新文本,延迟时间为0.8秒。
function beginningText() {
$('#bubbleText').text('H').delay(800);
$('#bubbleText').text('He');
}
答案 0 :(得分:1)
您可能希望在此处设置超时而不是延迟。 有s
为你创造了一个小提琴 https://jsfiddle.net/vatsalpande/5d09nbLo/
示例代码
$(document).ready(function(){
function beginningText() {
$('#bubbleText').text('H');
setTimeout(function(){ $('#bubbleText').text('HE') }, 3000);
}
beginningText();
});
<div id = "bubbleText"></div>
根据jQuery文档
.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的原生setTimeout函数,这可能更适合某些用例
所以要带走的关键点是
将.delay()用于jQuery效果,包括动画。
setTimeout()最适用于其他所有内容。例如当你 需要在某个经过的时间触发事件。
希望这会有所帮助。
快乐学习
答案 1 :(得分:0)
.delay()
阻止代码在同一个语句中链接到它,但不会阻塞在它之后的语句中的代码。
技术上你想要的结构是这样的:
$('#bubbleText').text('H').delay(800).text('He');
然而 ,这不起作用。一个非常明显的原因(我只需要抬头看)。 .delay()
对jQuery中“排队”的项目进行操作,例如动画和其他需要时间的事情。设置文本或任何其他此类“即时”操作不会“排队”,只会立即发生。
您可以手动使用.queue()
功能将操作添加到队列中:
$('#bubbleText').text('H').delay(800).queue(function(){
$('#bubbleText').text('He');
});