2013-10-28 86 views
1

我有下面的代碼應該加載一個背景圖像的div,在封閉的div中的一些文本,然後運行腳本來要求新的文本,並插入它而不是舊的文本。問題是腳本在圖像加載之前運行。腳本完成後,將進行替換並顯示圖像,但這不是我想要的順序。我已經放入了窗口加載函數,並認爲這會延遲適當的事情。也試過使用文件加載但是同樣的問題。我正在使用Safari。請幫忙嗎?無法獲得背景圖像加載之前jQuery腳本

<!DOCTYPE html> 
<html> 

<head> 
<meta charset=utf-8> 
<style> 
.picture {width:640px; height:480px; background-image:url(/users/me/desktop/sig.jpg); 
background-repeat:no-repeat; 
background-position:center} 
.words {position:absolute;width:320px; height:240px;padding:20px;border:10px;border- 
color:red;border-style:solid;text-align:center; margin-left:140px;margin-top:110px} 
</style> 
<script src="https://stackoverflow.com/users/skronwith/desktop/jquery-1.10.2.min.js"></script> 
<script> 
$(window).load(function() { 

var answer = prompt('what is input', ' '); 
$('.words').text(answer); 
}); 
</script> 
</head> 

<body> 
<div class ="picture"> 
<div class ="words"> 

this is in the second div and should be there before the script runs 

</div> 
</div> 

</body> 
</html> 

回答

0

可以使用的setTimeout()

試試這個

$(window).load(function() { 
    setTimeout(function(){ 
    var answer = prompt('what is input', ' '); 
    $('.words').text(answer); 
    },1000); 
}); 

或者,你可以在使用的document.ready它(在裝載時的Dom)

$(document).ready(function(){ 
    var answer = prompt('what is input', ' '); 
    $('.words').text(answer); 
    }); 
}) 

或者您可以嘗試在最後添加腳本"</body>"

+0

我試圖文件準備好,得到相同的結果 - 腳本之前沒有背景圖像加載。 –

+0

我也已經把腳本放在身體末端之前,出現同樣的問題 –

+0

超時工作正常 - 謝謝。然而,爲什麼這是必需的,因爲沒有工作的文檔就緒函數應該等到所有的東西都被加載了? –

0

使用它的document.ready()

$(document).ready(function(){ 
    $('.words').text(answer); 
}); 
+0

文件準備有同樣的問題。 –