2011-08-26 33 views
0

我有一個個人腳本設置。我所做的是在一個文件夾中寫入一些javascript文件,然後腳本負責將所有這些文件加入並縮小它們。同步jQuery從DOM中檢索

在兩個不同的文件,我有這樣的:

FILE 1:

...document ready... 
$(this).attr('id', 'foo'); 
... 

FILE 2:

...document ready... 
$('#foo').append('<span>bar</span>'); 
... 

的問題是,當它試圖獲取#foo元素,它找不到任何東西,最有可能導致它尚未創建。有什麼辦法可以同步這個過程,所以它遵循更合適的順序? (先創建,然後追加)

謝謝!

+0

當腳本合併時,函數以什麼順序進來? – lonesomeday

+0

如果file1在file2之前,它應該工作。 –

+0

就我而言,它編譯的順序是FILE2,然後FILE1 – frarees

回答

1

「文檔就緒」事件不能確定您的函數被調用的順序。我認爲這將是更好,如果你沒有在文件中使用「文件準備」事件的功能2.

像這樣的東西應該工作:

文件2:

...on load of page/element... 
'parent of foo'.bind('foo_inserted', 
         function() { $('#foo').append('<span>bar</span>'); }); 

文件1 :

...document ready... 
'parent of foo'.attr('id', 'foo'); 
'parent of foo'.trigger('foo_inserted'); 

欲瞭解更多詳情,請參閱eg這page或jQuery documentation

+0

它觸發了一個有效且可用的解決方案?我在想那個,但不知道是否合適。 – frarees

+0

我不是jQuery專家,但我認爲是的,事件就是爲了這樣的事情而準備的。 – tty56

+0

好的,謝謝我要去嘗試它! – frarees