2011-07-22 37 views
2

我正在編寫一個網站,我使用SWFUpload和大量的Ajax $('#maincontent').load(URL)來替換內容主視圖。在AJAX之前綁定一個要執行的DOM元素上的事件.load

不幸的是,在IE 7+中,當我在#maincontent的元素中使用SWFUpload實例並使用.load()替換#maincontent的內容時,我從SWFUpload中看到無限循環的錯誤因爲它是DOM元素(已被刪除)。 (即:「無法設置屬性的值'SetFileQueueLimit':對象爲空或未定義」,「無法設置屬性的值'SetHttpSuccess':對象爲空或未定義的」無限期)。

當然,這或多或少地阻止了JavaScript引擎,並留下了一個沒有JavaScript觸發的無響應頁面。

所以我的問題是:如何綁定#maincontent的Ajax負載(),以便在我的元素被刪除之前對其進行uploader.destroy?

(或其他任何解決IE問題的建議......)

謝謝!

回答

1

根據jquery的文檔,方法加載的回調是在內容改變後執行的。 所以,你可能更喜歡使用

$.get(URL, function(data) { 
    uploader.destroy(); 
    $('#mainContent').html(data); 
}); 
+0

謝謝,建議可以幫助我的未來。但是在我的代碼中有很多$('#maincontent').load(URL,callback(){}),所以將它們改爲你的語法需要一些時間......但是不能解決我的問題。 現在,我有很多: destroyUploader(); ('#maincontent')。load('URL',function(){}); –

+0

爲什麼需要一些時間不會解決你的問題。這是無關的。順便說一句,代碼的重複是邪惡的。 – user753642

+0

你是對的,謝謝。這有幫助。 –

相關問題