2009-10-01 58 views
0

我有一個函數可以在動態生成的元素上調用.dialog。代碼:jQuery UI - Firefox中的對話框隱藏效果 - 閃爍

dialog: function(message){ 
    $('<div>').attr('innerHTML',message).dialog({ 
     draggable: false, 
     width: 500, 
     hide: 'puff', 
     resizable: false, 
     bgiframe: true, 
     modal: true, 
     buttons: { 
      Ok: function() { 
       $(this).dialog('close'); 
      } 
     } 
    }); 
}; 

(對話框任命爲全球對象的功能)

當我關閉該對話框中IE,效果按預期工作。但是,在Firefox中,隱藏效果是各種各樣的鋸齒狀和「閃爍」。我在FF中看到其他有關UI「閃爍」的問題,但他們似乎不太適合我的情況。

請給我一些好消息,並告訴我,我做錯了什麼,Firefox支持這些效果。

這是IE在FF失敗的情況下成功的幾次之一。

+0

可能不相關,但您應該使用.html(消息)而不是.attr('innerHTML',消息)。 – tvanfosson 2009-10-01 01:32:08

回答

1

我有一個滾動條和可見性類似的問題。這不是一個FireFox的錯誤。我可以跟蹤它歸結爲在jQuery的線路終端在CSS()函數調用的交換()函數:

jQuery.swap(elem, props, getWH); 

請參考http://dev.jquery.com/ticket/5743爲什麼發生這種情況。

jQuery交換功能臨時更新DOM強制FireFox刷新頁面。您可能希望從您的示例中創建一個測試用例,然後在jQuery中註釋掉swap調用以驗證這一點,並在jQuery ticket系統中記錄另一個錯誤。