1

タイトルが示すように、私はいくつかのIE7の問題を抱えています。私が今抱えている問題は、ダイアログが正しく機能しないことです。ダイアログ自体は機能しますが、ダイアログのボタンは表示されません。つまり、実際に配置されている場所にカーソルを合わせるまでです。

これがjqueryコードです

$('#sessionTimeout-dialog').dialog({
            autoOpen: false,
            width: 400,
            modal: true,
            closeOnEscape: false,
            open: function (event, ui) { $(".ui-dialog-titlebar-close").hide(); },
            buttons: [{

                // Button one - closes dialog and makes call to keep-alive URL
                text: o.stayConnected,
                "class": "confirmSession",
                click: function () {
                    $(this).dialog('close');
                    $('#sessionTimeout-dialog div div button').addClass('confirm');

                    $.ajax({
                        type: 'POST',
                        url: o.keepAliveUrl
                    });
                    $('.formOverlay').find('*').attr('disabled', false);

                    // Stop redirect timer and restart warning timer
                    controlRedirTimer('stop');
                    controlDialogTimer('start');
                }
            }]
        });

これはIE8以降、FF、Chromeで正しく機能するため、これはIE7がダイアログによって生成されるコントロールに伴う問題であると私は考え始めています。

したがって、もう一度要約すると、次のようになります。

IE8+の動作

IE7の動作は次のとおりです。

クラス="confirmSession"

  1. ページの読み込み
  2. JavaScriptエラーなし
  3. ダイアログはボタンなしで表示されます
  4. ボタンがあるべき場所にカーソルを合わせます
  5. ボタンは魔法のように正しいcssスタイルで表示されます。

クラスなし="confirmSession"

  1. ページの読み込み
  2. JavaScriptエラーなし
  3. ダイアログはボタンで表示されます(cssクラスがないためcssはありません)

私はこの行動に困惑しているので、一緒に解決できることを願っています。

編集:

要求に応じて:confirmSessionクラスのcssスタイル。.lessファイルから取得されます。

.confirmSession {
            width:45%; font-size: 1em; background: #4c8cb4 !IMPORTANT; border: #427594 1px solid; padding: 0px;  color: #fff; text-decoration: none; .box-sizing(border-box); white-space: normal; cursor: pointer; float: none; font-weight: 400; margin: 10px 2%; display: block; float: left;
            -webkit-box-shadow: inset 0 1px 0 0 rgba(255,255,255,0.4), 2px 2px 3px -2px rgba(0, 0, 0, 0.4);
            -moz-box-shadow: inset 0 1px 0 0 rgba(255,255,255,0.4),2px 2px 3px -2px rgba(0, 0, 0, 0.4);
            box-shadow: inset 0 1px 0 0 rgba(255,255,255,0.4), 2px 2px 3px -2px rgba(0, 0, 0, 0.4);
            text-align: center; position: absolute; bottom: 1em; left: 10px; right: 10px; 
        }
4

1 に答える 1

2

ConfirmSessionクラスで使用されているスタイルが何であれ、jQueryスタイルによってオーバーライドされます。

だから!importantあなたのスタイルの前に使用してください。

すべてのcssプロパティを削除してから、1つずつ追加してみてください。そうすれば、問題を見つけることができます。

于 2013-03-18T10:34:24.107 に答える