當$.uploadify() 遇到 $.dialog() 【在IE下需要注意的問題】


Uploadify v3.0 是時下較為流行的基於jQuery的多文件上傳插件,在一般應用時是沒什么問題的。不過最近在IE下遇到了一個怪異的問題,找了半天才確定原因,現與大家分享一下我自己的解決辦法。

 


問題簡述(IE下):

當Uploadify出現在Dialog中,並且被銷毀時,比如Dialog被empty(),或者直接執行$('.uploadify').uploadify('destroy')方法時,IE將會無限報錯,如果此時你正打開控制台進行調試,就會面臨IE的開發者工具被紅字刷屏,直接卡死

 

問題詳述:

$.dialog是jQuery UI組件庫中被利用較頻繁的插件之一,用途是將頁面中一個已知的標簽內容以彈出對話框的形式展現出來。通常我們把包含Uploadify插件的對話框彈出並關閉后,是不會銷毀Uploadify的,因為這個對話框只是被隱藏了,所以沒有問題。但在一些特殊情況下,如果我們在關閉對話框后必須清空里面的內容的話,就將面臨本文所說的災難。

 

解決辦法:

在嘗試過多種方案后,我發現目前比較簡單並能夠解決該問題的辦法是:在銷毀Uploadify以前,隱藏之,然后隨便怎么搞都沒有問題了。

// 找到彈出對話框
var dialog = $('#dialog');

dialog.dialog({title: '測試對話框', width: 200, height: 200, close: afterClosed});

function afterClosed(){
  
  // 在彈出對話框內找到Uploadify插件,並隱藏之。
  dialog.find('.uploadify').hide();

  // 將彈出對話框還原成彈出前的狀態,並清空里面的內容。
  dialog.dialog('destroy').empty();

}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM