嘿傢伙, 快速提問:在一個網站上使用兩個$(window).load(function(e){
函數實際上是否可行和有語義?jquery和javascript:兩個加載函數?
例如我有一個header.php其中包含<script>
標記與一些jQuery - $(window).load(function(e){
是它的一部分。在它下面我有另一個標籤鏈接到一個外部.js文件,它又有一個$(window).load(function(e){
。
這是允許和可以嗎?
謝謝!
嘿傢伙, 快速提問:在一個網站上使用兩個$(window).load(function(e){
函數實際上是否可行和有語義?jquery和javascript:兩個加載函數?
例如我有一個header.php其中包含<script>
標記與一些jQuery - $(window).load(function(e){
是它的一部分。在它下面我有另一個標籤鏈接到一個外部.js文件,它又有一個$(window).load(function(e){
。
這是允許和可以嗎?
謝謝!
是的。您所做的每個load()
聲明將簡單地附加到現有處理程序。
從docs on .bind()
(這是處理實際工作的load()
快捷方式功能):
當一個事件到達的元素,綁定到該事件類型的元件的所有處理程序被解僱。如果有多個處理程序註冊,它們將始終按照它們綁定的順序執行。在所有處理程序執行完畢後,事件將沿着正常事件傳播路徑繼續。
函數(和其他與事件相關的函數)接受函數,該函數在事件觸發時將其放置在事件處理程序隊列中。
所以,要更直接地回答你的問題,是的。
讓我們剛纔談到它怎麼可能?
假設您有多個事件要在您的頁面完全加載時調用。讓我們來看看JavaScript
以獲得更多關於這個概念的信息,並讓它簡單易懂。
var pageLoadEvents = [];
我們已經創建了一個數組,其中我們將繼續我們的所有活動,我們希望加載頁面時調用。
pageLoadEvents.push(function() {
alert("hello!");
})
和:
pageLoadEvents.push(function() {
alert("How are you doing?");
})
現在,您已經定義了所有你想提高頁面加載和所有這些事件都是在一個pageLoadEvents
陣列。在這裏,我們寫最後一段:
window.onload = function() {
for(var index=0; index<pageLoadEvents.length; index++) {
pageLoadEvents[index]();
}
}
,我們保持pageLoadEvents
陣列中的所有活動將由一個被執行一個。
每次調用load
上$(window)
保持它的內容時(如函數(E){..})你load
在數組定義和最終執行他們每個人。