成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? 全面解析jQuery $(document).ready()和JavaScript onload事件
全站頭部文字 我要出現在這里
全面解析jQuery $(document).ready()和JavaScript onload事件 787 2024-02-29   

對元素的操作和事件的綁定需要等待一個合適的時機,可以看下面的例子:

<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-1</title>
<script type="text/javascript">
document.getElementById("panel").onclick = function () {
alert("元素已經加載完畢 !");
}
/*執行錯誤*/
</script>
</head>
<body>
<div id="panel">click me.</div>
</body>
</html>

如果這樣,還沒有等待元素加載完就給 div#panel 綁定了一個事件,瀏覽器Console中會報錯: TypeError:

document.getElementById(...) is null

更改一下時機,下面三個程序都是可以成功綁定事件的,點擊元素之后會彈出相應的alert().

把事件綁定放在body里,元素之后:

由于綁定事件在元素之后,所以可以成功獲取 div#panel 的元素,并在 div#panel 上綁定點擊事件。

<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-2</title>
</head>
<body>
<div id="panel">click me.</div>
<script type="text/javascript">
document.getElementById("panel").onclick = function () {
alert("元素已經加載完畢 !");
}
/*正確執行*/
</script>
</body>
</html>

把事件綁定放在window.onload中進行事件綁定:

window.onload 事件的處理函數則在頁面所有元素加載完成之后才執行,所以這里給獲取元素并綁定事件也是可行的。

<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-2</title>
</head>
<body>
<div id="panel">click me.</div>
<script type="text/javascript">
document.getElementById("panel").onclick = function () {
alert("元素已經加載完畢 !");
}
/*正確執行*/
</script>
</body>
</html>
jQuery的ready()方法傳入綁定事件的方法:
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>1-3</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
$(document).ready(function(){
document.getElementById("panel").onclick = function () {
alert("元素已經加載完畢 !");
}
/*正確執行*/
});
</script>
</head>
<body>
<div id="panel">click me.</div>
</body>
</html>

jQuery $(document).ready()和window.onload

根據ready()方法的API說明http://api.jquery.com/ready/。

這個方法接收一個function類型的參數ready(handler), 方法的作用是: Specify a function to execute when the DOM is fully loaded.即當DOM加載完畢的時候,執行這個指定的方法.因為只有document的狀態ready之后,對元素的操作才是安全的. $(document).ready() 僅在DOM準備好的時候執行一次,但可以多次綁定 ready 事件。

與ready相比,load事件會等到頁面渲染完成執行,即等到所有的資源(比如圖片)都完全加載完成的時候才會執行。 $(window).load(function(){…}) 會等整個頁面,不僅僅是DOM,還包括圖像和iframes都準備好之后,再執行.而ready()是在DOM準備好之后就執行了,即DOM樹建立完成的時候.所以通常ready()是一個更好的時機.

如果DOM初始化完成之后再調用ready()方法,傳入的新的handler將會立即執行.

注意:ready()方法多次調用,傳入的handler方法會串聯執行(追加).而JavaScript中,window.onload是賦值一個方法,即后面的會覆蓋掉前面的.

$(document).ready()的三種簡寫

$( document ).ready(handler)
$().ready(handler)//(this is not recommended)
$(handler)

window對象和document對象

Window對象表示瀏覽器中打開的窗口: http://www.w3school.com.cn/jsref/dom_obj_window.asp
Document對象表示載入瀏覽器的HTML文檔: http://www.w3school.com.cn/jsref/dom_obj_document.asp

Event對象

Event 即事件,代表了各種狀態:http://www.w3school.com.cn/jsref/dom_obj_event.asp

事件句柄使我們可以在事件發生的時候附加一些操作和處理,比如按鈕點擊事件發生的時候,進行什么什么操作.上面的參考鏈接中含有一個屬性列表,對應各種事件,可以利用這些屬性定義事件的行為.文中關注的onload就是其中一個事件.

onload事件

onload 事件: http://www.w3school.com.cn/jsref/event_onload.asp

onload 事件是在加載完成后立即發生.(注意其中的l是小寫).

支持該事件的標簽是: <body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>

支持該事件的JavaScript對象是: image, layer, window .注意這里并沒有 document .

onload使用解析

最常用的就是 window.onload , 會等到整個頁面及各種資源都加載完成之后再執行后面賦值的 function 行為.另外,可以在標簽中使用 onload ,比如:

<body onload="inlineBodyOnloadTimeCounter();">

其中 inlineBodyOnloadTimeCounter() 是一個自定義的JavaScript function.

注意 jQuery ready() 的API文檔中有這么一段:

The .ready() method is generally incompatible with the attribute. If load must be used, either do not use .ready() or use jQuery's .load() method to attach load event handlers to the window or to more specific items, like images.

注釋: ready() 方法和 <body onload=""> 是不兼容的.

以上所述是小編給大家介紹的全面解析jQuery $(document).ready()和JavaScript onload事件的相關知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對綠夏網網站的支持!


ip

主站蜘蛛池模板: 四年级科学上册教学计划(新教科版) | 白上之黑| jagger| 看香谱二十四法图解| 巫山历险记| 美少女战士cosmos| 邓梓峰| 洛城僵尸在线观看| 明日战记| 10元人民币图片| 赵汉善| 追捕电影国语版完整版| 仁爱版九年级英语上册教案| 泰国av| 沈月个人简历资料| 上官于飞| 韩国最火主播朴曼妮| 郭馨钰| 默读车| 教育电视台| 致爱丽丝钢琴简谱双手完整版| 2035去台湾六一儿童舞蹈| 九狐| 李赫洙| 蛇谷奇兵 电影| 决胜法庭演员表| 十大名茶排名顺序| 画江湖之不良人7季什么时候上映 画江湖之不良人第七季什么时候出 | 橘子洲旅游攻略| 内裤之穴| 一级特黄新婚之夜| 色戒在线观看视频| 间宫祥太朗| 失落的星球| 晋剧下河东全本| 蝴蝶视频在线观看| 孤掷一注在线观看| 成人在线免费播放视频| 日本电影姐姐| hunger game| 拔萝卜短剧|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103