淺談script在html中的擺放位置

以前一直覺得script在html中的任何位置都可以,今天做一個需求的時候才更正了自己的錯誤思想啊--script的位置也不是隨便放的。
首先是想實現(xiàn)一個select標(biāo)簽,有是和無兩個option,但是在初始化的時候要求select標(biāo)簽?zāi)J(rèn)選擇空值,所以我在點擊的時候加了一個方法讓他把空值刪掉:
- <!DOCTYPE html>
- <html>
- <head>
- <script src="jquery/jquery-1.11.1.min.js"></script>
- </head>
- <script>
- $('#checkcash').click(function () {
- if ($('#checkcash').val() == '0') {
- $("#checkcash option[value='0']").remove();
- }
- });
- $("#alert").click(function(){
- alert("1123");
- })
- </script>
- <body>
- 是否已提現(xiàn) <select id="checkcash" style="width: 181px">
- <option selected="selected" value="0"></option>
- <option value="1">是</option>
- <option value="2">否</option>
- </select>
- <input type='button' id='alert' value="anwo">
- </body>
- </html>
但是這樣并不能達(dá)到想要的效果,起初以為是jquery語法錯誤還一直在網(wǎng)上查,改,但是都不管用,后來突然想到是不是應(yīng)該把script放到后面,試了一下,結(jié)果果真ok了,這才恍然大悟,原來不是這樣的。
后來查了一下原因是因為,html文件是自上而下的執(zhí)行方式,但引入的css和javascript的順序有所不同,css引入執(zhí)行加載時,程序仍然往下執(zhí)行,而執(zhí)行到<script>腳本是則中斷線程,待該script腳本執(zhí)行結(jié)束之后程序才繼續(xù)往下執(zhí)行。所以,一般將script放在body之后是因為避免長時間執(zhí)行script腳本而延遲阻塞。而有一些頁面的效果的實現(xiàn),是需要預(yù)先動態(tài)的加載一些js腳本,所以這些腳本應(yīng)該放在<body>之前。其次,不能將需要訪問dom元素的js放在body之前,因為此時還沒有開始生成dom,所以在body之前的訪問dom元素的js會出錯,或者無效。就是因為這個,在dom沒生成好時我就給它添加了方法,才導(dǎo)致這樣。
真的應(yīng)該多學(xué)習(xí)很多地方以為所以然了,卻沒深究。以后還要加油!
ps:其實還有另外一種方法,那就是用jquery的初始化頁面方法,把上面給標(biāo)簽添加的點擊事件加入到$(function(){})中也是可以的,原理和上面是一樣的,這個方法是等頁面加載好了才執(zhí)行,所以不管放在哪都可以了!
以上這篇淺談script在html中的擺放位置就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
- 下面小編就為大家?guī)硪黄獪\談HTML的doctype和編碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-24
html5 canvas實現(xiàn)的流星雨星星動畫背景特效源碼
是一段實現(xiàn)了流星雨劃過+星星閃爍的動畫背景效果代碼,本段代碼適應(yīng)于所有網(wǎng)頁使用,有興趣的朋友們就來下載使用吧2016-08-23HTML+CSS項目開發(fā)經(jīng)驗總結(jié)(推薦)
下面小編就為大家?guī)硪黄狧TML+CSS項目開發(fā)經(jīng)驗總結(jié)(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-23- 下面小編就為大家?guī)硪黄岸酥瓾TML知識點整理匯總(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-22
- 下面小編就為大家?guī)硪黄獪\談HTML中的標(biāo)記。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-22
html5實現(xiàn)的創(chuàng)意扭曲針時鐘特效源碼
這是一款基于html5實現(xiàn)的創(chuàng)意扭曲針時鐘特效源碼。畫面中的時針、分針與秒針相互連接成一條曲線,秒針實時讀取當(dāng)前時間做平滑順時針運(yùn)動,同時帶動分針與時針運(yùn)動2016-08-20- 這是一款使用HTML5 Canvas制作的黑板寫字效果的代碼,支持手機(jī)移動端,可模擬在黑板上寫字的效果,歡迎下載使用2016-08-18
- 下面小編就為大家?guī)硪黄狧TML 文本格式化的簡單實例(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-30