2011-08-04 155 views
2

如何在頁面加載後觸發並綁定事件?jQuery觸發並綁定頁面加載的事件?

我遇到的問題是,在一個地方,在頁面加載我觸發事件:

//producer.js 
pageLoaded(){ 
    var e = jQuery.Event("eventA"); 
    $("body").trigger(e); 
    ...} 

,並在另一個我綁定到它:

//consumer.js 
pageLoaded(){ 
    $("body").bind("eventA", function(args){console.log("Got it!");}); 
    ... } 

的問題是,第一次事件被觸發(頁面加載時) - 消費者看不到它。第二次事件被解僱,但是,一切都很好!

我猜這是因爲事件實際上是在消費者開始收聽之前觸發的。

在事件中創建「觸發器」和「偵聽器」時,是否有一個很好的做法 - 必須在頁面加載和以後才能使用?

回答

0

使用類似RequireJS將讓我第一次加載一個JavaScript文件,並然後另一個。

所以我可以讓producer.js依賴consumer.js

1

如果在觸發事件時沒有偵聽器,則不會發生這種情況,這就是爲什麼在第一個觸發器上沒有看到任何事情。

+0

我明白,但你怎麼能解決這個問題得到什麼?我真的需要在頁面加載時「抓住」事件。但我也需要在頁面加載時觸發它。這太瘋狂了!!! – drozzy

+0

然後確保consumer.js加載之前producer.js – ShankarSangoli

+0

@drozzy - 如果我的答案有任何意義,請接受它謝謝。 – ShankarSangoli

0

聽起來像是你需要控制的document.ready的順序()調用..也許this questionthis article的迴應可能會協助您

相關問題