3


0

jQueryダイアログIE7の問題

IE7のみでタイトルバーの幅に問題があります。 幅を使用して開いたときの最初のダイアログ関数: 'auto’タイトルバーはダイアログウィンドウ全体に広がりません。 minWidthを使用する2番目の関数は機能しますが、widthプロパティのように機能し、コンテンツに合わせてサイズが大きくなることはありません。 何か案は?

動作していない

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

動作中(固定幅としてのみ):

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

2 Answer


2


理論的にはwidth:autoはサポートされていませんが、IE8とFFでは動作するようですが、IE7では動作しないようです

私はこのリンクに出くわしました:

そして、このように適応しました:

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


幅をまったく定義しないとどうなりますか? width:100%を試しましたか?