jQuery文件就緒

admin發表於2017-02-13

很多jQuery程式碼都有如下片段:

[JavaScript] 純文字檢視 複製程式碼
$(document).ready(function(){
  //程式碼
})

作用就是等文件結構載入完成後再去執行function中的程式碼。

功能類似window.onload事件,與DOMContentLoaded事件功能相同。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
div{
  height:150px;
  width:150px;
  background-color:#ccc;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript"> 
$(document).ready(function(){ 
  $("div").hide(); 
}) 
</script>
</head>
<body>
<div></div>
</body>
</html>

上面程式碼能夠將div元素隱藏。但是如果將程式碼修改如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
div{
  height:150px;
  width:150px;
  background-color:#ccc;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript"> 
$("div").hide(); 
</script>
</head>
<body>
<div></div>
</body>
</html>

執行上面的程式碼卻不能夠隱藏div元素。

由於程式碼是順序執行的,那麼當程式碼執行到$("div").hide()時候,文件中的div元素還沒有載入完成,那麼$("div")也就無法獲取到div物件,於是$("div").hide()就無效了。

相關文章