DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML和Xhtml >> 淺談script在html中的擺放位置
淺談script在html中的擺放位置
編輯:HTML和Xhtml     

以前一直覺得script在html中的任何位置都可以,今天做一個需求的時候才更正了自己的錯誤思想啊--script的位置也不是隨便放的。

首先是想實現一個select標簽,有是和無兩個option,但是在初始化的時候要求select標簽默認選擇空值,所以我在點擊的時候加了一個方法讓他把空值刪掉:

XML/HTML Code復制內容到剪貼板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <script src="jquery/jquery-1.11.1.min.js"></script>  
  5. </head>  
  6. <script>  
  7. $('#checkcash').click(function () {   
  8.         if ($('#checkcash').val() == '0') {   
  9.             $("#checkcash option[value='0']").remove();   
  10.         }   
  11.     });   
  12.     $("#alert").click(function(){   
  13.     alert("1123");   
  14.     })   
  15. </script>  
  16. <body>  
  17.  是否已提現 <select id="checkcash"   style="width: 181px">  
  18.                             <option selected="selected" value="0"></option>  
  19.                             <option value="1">是</option>  
  20.                             <option value="2">否</option>  
  21.                             </select>  
  22.                                 
  23.                             <input type='button' id='alert' value="anwo">  
  24. </body>  
  25.   
  26.   
  27. </html>  

但是這樣並不能達到想要的效果,起初以為是jquery語法錯誤還一直在網上查,改,但是都不管用,後來突然想到是不是應該把script放到後面,試了一下,結果果真ok了,這才恍然大悟,原來不是這樣的。

後來查了一下原因是因為,html文件是自上而下的執行方式,但引入的css和javascript的順序有所不同,css引入執行加載時,程序仍然往下執行,而執行到<script>腳本是則中斷線程,待該script腳本執行結束之後程序才繼續往下執行。所以,一般將script放在body之後是因為避免長時間執行script腳本而延遲阻塞。而有一些頁面的效果的實現,是需要預先動態的加載一些js腳本,所以這些腳本應該放在<body>之前。其次,不能將需要訪問dom元素的js放在body之前,因為此時還沒有開始生成dom,所以在body之前的訪問dom元素的js會出錯,或者無效。就是因為這個,在dom沒生成好時我就給它添加了方法,才導致這樣。

真的應該多學習很多地方以為所以然了,卻沒深究。以後還要加油!

 ps:其實還有另外一種方法,那就是用jquery的初始化頁面方法,把上面給標簽添加的點擊事件加入到$(function(){})中也是可以的,原理和上面是一樣的,這個方法是等頁面加載好了才執行,所以不管放在哪都可以了!

以上這篇淺談script在html中的擺放位置就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved