$になるuploadify()が$に遭遇しました.dialog()【IEで注意すべき問題】

1575 ワード

Uploadify v3.0は現在流行しているjQueryベースのマルチファイルアップロードプラグインで、一般的なアプリケーションでは問題ありません.しかし最近IEの下で1つの奇怪な问题に出会って、半日探してやっと原因を确定して、今みんなと自分の解决方法を分かち合います.
 
問題の簡単な説明(IEの下):
UploadifyがDialogに現れる、破棄されると、例えばDialogがempty()、または直接$('.uploadify')が実行される.uploadify('destroy')メソッドの場合、IEは無限にエラーを報告します.コンソールを開いてデバッグしていると、IEの開発者ツールが赤字で画面を消し、直接詰まってしまいます.
 
質問の詳細:
$.dialogは、jQuery UIコンポーネントライブラリで頻繁に使用されるプラグインの1つで、ページ内の既知のラベルコンテンツをポップアップダイアログボックスとして表示するために使用されます.通常、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();



}