2010-10-26 21 views
3

Je rencontre des problèmes avec la largeur de la barre de titre dans IE7 uniquement. La première boîte de dialogue, lorsqu'elle est ouverte en utilisant la largeur: 'auto', la barre de titre ne s'étend pas sur toute la fenêtre de dialogue. La deuxième fonction utilisant minWidth fonctionne mais agit plus comme la propriété width et ne grossit pas avec le contenu. Des idées?Problèmes IE7 de la boîte de dialogue jQuery

ne fonctionne pas:

 $(dialogId).dialog({ 
      autoOpen: 'false', 
      modal: true, 
      draggable: false, 
      resizable: false, 
      buttons: buttons, 
      title: title, 
      width: 'auto', 
      open: function(){ 
       /* IE HACK */ 
       $buttonPane = $(this).next(); 
       $buttonPane.find('button:first').addClass('accept').addClass('action'); 
       $('.ui-dialog-titlebar-close').hide(); 
       $('.ui-dialog').addClass('open_dialog'); 
       $(this).css('overflow','hidden');// IE hack 
       onOpen; 
      }, 
      close: function(){ 
       $('.ui-dialog').removeClass('open_dialog'); 
       afterClose; 
      } 
     }); 

de travail (uniquement de largeur fixe):

 $('#conf_dialog').dialog({ 
      dialogClass: dialogclass, 
      autoOpen: 'false', 
      modal: true, 
      draggable: false, 
      resizable: false, 
      buttons:buttons, 
      title:title, 
      minWidth: 255, 
      open: function(){ 
       /* IE HACK */ 
       $buttonPane = $(this).next(); 
       $buttonPane.find('button:first').addClass('accept').addClass('action'); 
       $('.ui-dialog-titlebar-close').hide(); 
      }, 
      close: afterClose 
     }); 
+0

Avez-vous eu de la chance pour résoudre ce problème? Je rencontre exactement le même problème ... – Jules

+0

largeur: auto n'est pas supporté: http://bugs.jqueryui.com/ticket/4437 Si vous regardez la largeur de la documentation de l'API spécifiquement n'accepte qu'un type de numéro non String /'auto'. Pour les autres qui rencontrent ce problème, vous devrez étendre/lier aux événements pour redimensionner le titre vous-même si vous essayez d'utiliser width: auto. –

Répondre

2

En théorie width: auto est pas prise en charge, mais il semble fonctionner dans IE8 et FF, mais pas sur IE7

je suis tombé sur ce lien:

http://ovaraksin.blogspot.com/2011/05/jquery-ui-dialog-with-auto-width-and.html

et l'a adapté ainsi :

 $("#myDialog").dialog({ autoOpen: false, 
      width: 'auto', 
      height: 'auto', 
      modal: true, 
      title: 'ABC...' 
     }).bind("dialogopen", function (event, ui) { 

      // fix for width:auto in IE 
      var contentWidth = $(this).width(); 
      $(this).parent().find('.ui-dialog-titlebar').each(function() { 
       $(this).width(contentWidth); 
      }); 

     }).bind("dialogclose", function (event, ui) { 
      //fix for width:auto in IE 
      $(this).parent().css("width", "auto"); 
     }); 
1

Qu'advient-il si vous ne définissez pas la largeur du tout? Avez-vous essayé la largeur: 100%?

+0

Largeur 100% étend simplement le dialogue à toute la fenêtre. Ne pas définir la largeur n'aide pas non plus ... – Jules