我已經在這裏很好地研究了這個問題,沒有答案爲我工作。我在屏幕上的同一位置一次顯示一本書中的文字。我試圖讓循環延遲x
毫秒,但單詞會立即顯示。用戶只能看到句子中的最後一個單詞。如何添加延遲到Jquery文本顯示
什麼都沒有,setTimeout
,setInterval
,等待ajaxComplete
等減慢了單詞的顯示。
即使我使用ajaxComplete
並將單詞循環出Ajax,setTimeout
,setInterval
也不會減慢單詞的顯示速度。非常令人沮喪。提前感謝您的幫助!
需要保持AJAX異步 - 因爲有按鈕供用戶暫停,跳到等
function showWord(){
$('#thedata').html(word);
}
function getThisSentence(){
var sentence;
var x;
var str = '';
var surl = "how-data.php?choice=1&book_id=7&chap_num=1&sent_num=1";
x = 0;
$.ajax({
cache:false,
async:true,
url:surl,
dataType:"json",
success: function(data){
words = data.words.split(' ');
$.each(words,function() {
var time = 1500;
word = words[x];
temp - word;
setTimeout(function(){ showWord() }, time)
time += 1500;
x++;
});
}
});
}
有趣 - 這工作。唯一的問題,我需要延遲是一個常數。你能否告訴我爲什麼它是一個交錯的延遲,但不是一個恆定的延遲? –
@SheldonGoldberg - 現在你讓我感到困惑,如果你使用一個不變的延遲,所有的單詞都會同時出現,那麼你真正想要的是什麼? – adeneo
我想展示一個病房,而不是延遲1秒,所以讀者可以閱讀這個句子。如果你不拖延,它們都會同時出現。但是,如果延遲相同的數量,例如1000毫秒,則沒有明顯的延遲,並且所有單詞都會同時出現。出於某種原因,在您的交錯指數下,延遲變得明顯。 –