2009-10-01 56 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系统中记录另一个错误。