標籤:
window.onload事件與 $(document).ready()事件處理常式的區別
1、觸發操作的時間不同。window.onload事件在文檔完全下載到瀏覽器時,才會觸發。$(document).ready()事件處理常式在DOM完全就緒並可以使用時調用,所有關聯的檔案不一定都下載完畢。
2、執行多個指令碼。window.onload事件只能執行一個指令碼,最後指定的函數會代替之前所指定的函數。 $(document).ready()事件處理常式可以執行多個指令碼,每次被調用,都會向內部的行為隊列中添加一個新函數,所有函數在頁面載入完成後都會被執行,並按照註冊它們的順序依次執行。
多個庫引起的名稱衝突
解決方案:1、調用jQuery.noConflict()方法
1 <script src=“prototype.js”></script>2 <script src="jQuery.js"></script>3 <script>4 jQuery.noConflict();5 </script>6 <script src="myscript.js"></script>
2、向.ready()方法傳遞的回呼函數接收$為參數。
jQuery(document).ready(function($){ //在這裡,可以正常使用});或者簡寫文法:jQuery(function($){ //正常使用});
3.3.1事件的旅程
事件捕獲:允許多個元素響應單擊事件的一種策略,事件首先會交給最外層的元素,接著再交給更具體的元素。
事件冒泡:與事件捕獲相反的,即當事件發生時,會首先發送給最具體的元素,在這個元素獲得響應機會之後,事件會向上冒泡到更一般的元素。
DOM標準規定同時使用這兩種策略:首先,事件要從一般元素到具體元素逐層捕獲,然後,事件再通過冒泡返回DOM樹的頂層。
1、阻止事件冒泡。通過事件對象。事件對象會在元素獲得處理事件的機會時傳遞給被調用的事件處理常式,包含與事件有關的資訊,也提供影響事件在DOM中傳遞進程的一些方法。如事件目標:event.target(),停止事件傳播:stopPropagation()。
2、阻止預設操作。.preventDefault()方法。
3、同時停止事件傳播和預設操作。在事件處理常式中返回false。
jQuery基礎教程第3章