2014-09-01 27 views
1

我的代碼的基本佈局是

<html> 
<head> 
[...] 
<style type="text/css"> 
[...] 
     div#snakediv 
     { 
      width: 500px; 
      height: 600px; 
      border: 3px dashed #fff; 
      margin: 0px; 
      float: left; 
      text-align: center; 
      color: #39275b; 
     } 
[...] 
</style> 
<script type="text/javascript"> 
     var SH = $("#snakediv").css("height"); 
     [...] 
</script> 
</head> 
<body> 
[...] 
</body> 
</html> 

但由於某種原因SH被設置爲undefined(我用類alert(...)試驗來檢驗)。現在我只是手動設置SH等於600,以便頁面正確運行,但是如果您想查看源代碼,請看這裏:http://jaminweb.com/snake_TEST_PHP.php。我試圖弄清楚如何將600編號爲的幻數。我有一種感覺,我的當前問題與JavaScript元素在創建HTML元素之前得到解析有關。或類似的東西。

+1

您的JavaScript代碼將在DOM構建之前執行,因此現在不會有「snakediv」。 – Pointy 2014-09-01 19:36:25

回答

5

環繞你的JavaScript在

$(document).ready(function() { 
    /* JS here */ 
}); 

然後,它適用於當頁面是renderd。 http://api.jquery.com/ready/

+0

我可以在$(document).ready(...)函數中定義函數嗎? – 2014-09-01 20:10:13

+0

@LilyCarter是的,當然。就緒函數在DOM準備就緒時執行,就是這樣。只需在這個函數中包裝你的代碼,並照常進行。 – TheFrozenOne 2014-09-01 20:51:04

1

的問題是DOM還沒有準備好與$(document).ready(function() {/* code goes here */});

http://api.jquery.com/ready/

包裝你的代碼基本上當一個元素是不是在DOM它的高度和寬度不能檢查,因爲它沒有任何。