Question

J'ai des problèmes avec la largeur de la barre de titre dans IE7 uniquement. La première fonction de dialogue lors de l'ouverture à l'aide de 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 davantage comme la propriété de largeur et ne se développe pas en taille avec le contenu. Des idées?

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

Fonctionnant (uniquement comme une 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
        });
Était-ce utile?

La solution

En théorie, largeur: l'auto n'est pas pris en charge, mais cela 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"); 
        });

Autres conseils

Que se passe-t-il si vous ne définissez pas du tout la largeur? Avez-vous essayé la largeur: 100%?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top