2015-05-23 61 views
0

jQuery suggests在執行任何DOM操作之前等待文檔ready事件。在flight.js組件中,this.after('initialize')似乎在該事件觸發之前被調用。flight.js組件應等待document.ready?

是否有必要在飛行組件內等待它,像這樣?

this.after('initialize', function() { 

    // Is this necessary? 

    $(document).ready(function() { 
     ... 
    }); 

    // Or this, the flight way? 

    this.on(document, 'ready', function() { 
     ... 
    }); 

}); 

謝謝

+0

這裏有太多的上下文來理解這段代碼試圖做什麼。例如,代碼片段中的「this」是什麼?什麼是'.after()'方法,什麼時候調用? – jfriend00

+0

使用'.on()'偵聽'ready'事件從jQuery 1.8開始被棄用。這個事件的支持形式被列出[這裏](https://api.jquery.com/ready/)。 '$(document).ready()'是受支持的表單之一。 – jfriend00

+0

請查看https://github.com/flightjs/flight,看看我在問什麼。爲了清晰起見編輯了這個問題。 – Rudi

回答

1

魯迪,它種取決於你想做什麼。通常,Flight組件將在初始化時附加到DOM元素。因此,如果元素靜態存在於文檔中,並且您的腳本初始化組件包含在主體的末尾,那麼您可能沒問題。

但是,通常,在編寫Flight應用程序時,我通常會有一個腳本或模塊來初始化該頁面的所有組件並將其附加。在該腳本中,您可以將其包裝爲等待DOMContentReady,尤其是如果您有代碼將元素動態寫入頁面,頁面加載後組件將附加到該頁面。

如果該組件中的環境需要它偵聽DOMContentReady,那麼這也是一種有用的方法。

+0

再次感謝,我將包裹附加模塊! – Rudi