jquery中的$(document).ready()類似于javascript中的window.onload(),但是其中還是有很大區(qū)別的
1.jquery中的可以簡化為$().ready(),$(function), 而js卻不行必須全部寫完。
2.同時js的window.onload()只能有一個,而jquery的$(document).ready()卻可以有多個。
3.最重要的一點是window.onload必須等到頁面內(nèi)包括圖片的所有元素加載完畢后才能執(zhí)行。
$(document).ready()是DOM結(jié)構(gòu)繪制完畢后就執(zhí)行,不必等到加載完畢。
下面說說在項目中遇到的問題
先上代碼,這個demo中我不用引入jquery包就可以使用類似jquery的$(id)(我個人不建議使用),在這個demo中頁面會彈出"1",在此處完全沒有問題。
<!DOCTYPE html><head> <title>JS</title> <script>function $(id){return document.getElementById(id)};window.onload = function(){ alert($("aaa").value);};</script></head> <body> <input id="aaa" value="1" /></body> </html>再上代碼,此處的問題會報錯"Cannot read property 'ready' of null",可以自己先想想為什么。。。
<!DOCTYPE html><head> <title>JS</title> <script src="js/jquery-2.1.1.min.js"></script><script>function $(id){return document.getElementById(id)};$(document).ready(function(){ //這是錯誤的代碼案列$("#aaa").click(function(){ $("#aaa").hide();});});</script></head> <body> <a id="aaa" value="1" >aaaaaa</a></body> </html>問題在與我們對"$"定義了一個函數(shù),同時又想使用jquery提供的"$",所以報錯"Cannot read property 'ready' of null",問題在于我們寫的"$"影響了$(document)這塊,所以還是老老實實導(dǎo)包,別嫌麻煩,不然出現(xiàn)bug,要是在不熟悉的其中語法(代碼就一行,項目大的話還不容易發(fā)現(xiàn)。o( 主站蜘蛛池模板: 临城县| 循化| 雅安市| 秀山| 遂平县| 万荣县| 济阳县| 腾冲县| 合水县| 布尔津县| 绥中县| 托克逊县| 大石桥市| 蕉岭县| 漳浦县| 通州市| 沙湾县| 晋宁县| 嘉善县| 聂拉木县| 宣汉县| 镶黄旗| 大足县| 梁河县| 英吉沙县| 大宁县| 林甸县| 宝丰县| 德庆县| 隆安县| 长垣县| 淳安县| 确山县| 新余市| 苏尼特左旗| 普格县| 昭平县| 姚安县| 花莲县| 鹿泉市| 承德市|