2009-10-01 2 views
0

J'ai une fonction qui appelle .dialog sur un élément généré dynamiquement. Le code:Interface utilisateur jQuery - Effet Hide Hide dans Firefox - Flickering

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'); 
      } 
     } 
    }); 
}; 

(dialogue est fonction d'un objet nommé Global)

Quand je ferme la boîte de dialogue dans IE, l'effet fonctionne comme prévu. Cependant, dans Firefox, l'effet de cache est toutes sortes de déchiquetés et 'flicky'. J'ai vu d'autres questions posées au sujet de l'UI «scintillement» dans FF, mais ils ne semblaient pas tout à fait correspondre à ma situation. S'il vous plaît, donnez-moi de bonnes nouvelles et dites-moi que je fais quelque chose de mal et Firefox prend en charge ces effets.

C'est l'une des rares fois où IE a réussi alors que FF a échoué.

+0

Probablement pas lié mais vous devriez utiliser .html (message) au lieu de .attr ('innerHTML', message). – tvanfosson

Répondre

1

J'ai eu un problème similaire avec les barres de défilement et la visibilité. Ce n'est pas un bug FireFox. Je pourrais tracer jusqu'à une ligne dans jQuery où la fonction css() appelle la fonction swap():

jQuery.swap(elem, props, getWH); 

S'il vous plaît se référer à http://dev.jquery.com/ticket/5743 pourquoi cela se produit.

La fonction d'échange jQuery met temporairement à jour le DOM forçant FireFox à actualiser la page. Vous pouvez créer un testcase à partir de votre exemple, puis commenter l'appel de swap dans jQuery pour le vérifier et archiver un autre bogue dans le système de tickets jQuery.