Frage

Ich habe Probleme mit der Breite der Titelbank nur in IE7. Die erste Dialogfunktion, wenn sie mit der Breite geöffnet wird: 'auto' Die Titelleiste erstreckt sich nicht über das gesamte Dialogfenster. Die zweite Funktion unter Verwendung von Minwidth funktioniert jedoch eher wie die Breiteneigenschaft und wächst nicht mit dem Inhalt. Irgendwelche Ideen?

Funktioniert nicht:

        $(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;
            }
        });

Arbeiten (nur als feste Breite):

        $('#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
        });
War es hilfreich?

Lösung

Theoretisch Breite: Auto wird nicht unterstützt, aber es scheint in IE8 und FF zu funktionieren, aber nicht auf IE7

Ich bin auf diesen Link gestoßen:

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

Und adaptierte es so:

       $("#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"); 
        });

Andere Tipps

Was passiert, wenn Sie die Breite überhaupt nicht definieren? Haben Sie es mit Breite ausprobiert: 100%?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top