0

次のコードがあります。

$("#dialog").dialog({
    height: 360,
    width: 630,
    modal: true,
    autoOpen: false,
    show: 'blind',
    hide: 'drop',
    resizable: false,
    dialogClass: 'noFloat'
});

$("#openDiag").click(function() {

    $("#dialog").dialog('open');

    $.ajax({
        type: "POST",
        url: "setHsdSegment.jsp",
        dataType: "html",
        resizable: false,
        //data:"name="+name+"&age="+age,
        success: function(data) {
            $("#response").html(data);
        }
    });
});

私が直面している問題は、表示と非表示が一度しか機能しないことです。ボタン (#openDialog) をもう一度クリックすると、半透明の画面だけが表示され、ダイアログ ボックスは表示されません。

面白いことに、これは hide が 'drop' で show が 'drop' 以外の場合にのみ発生します。しかし、show が「drop」で hide がそれ以外の場合は、すべて問題ありません。

非表示が「ドロップ」の場合、ショーは「ドロップ」である必要がありますか?

編集:これは IE でのみ発生しています。(いつものように IE が問題を引き起こしています。:D... なぜ?)

4

3 に答える 3

1

これは、jQuery UI の既知のバグです: http://bugs.jqueryui.com/ticket/5615

簡単な修正は、ダイアログを破棄して再作成することです。

var $dlg = $("#dialog");
var dlgOptions = $dlg.dialog("option");
$dlg.dialog("destroy");
$dlg.dialog(dlgOptions);

ダイアログが画面の外に出て、次に表示されたときに戻ってくるのを忘れているようです (「表示」が「ドロップ」に設定されていない限り、まったく逆になります)。

于 2012-02-12T11:45:35.067 に答える
0

このデモでは問題なく動作しているようです: http://jsfiddle.net/william/mQkH7/

おそらく、jQuery UI をアップグレード/ダウングレードしてみてください。

于 2011-08-19T12:51:41.450 に答える
0

私はそれを回避する方法を見つけました。これが最善の方法かどうかはわかりませんが、うまくいきます。それは次のとおりです。

 $("#openDiag").click(function(){
  $('#dialog').dialog('destroy');
   $("#dialog").dialog({
                    height: 360,
                    width: 630,
                    modal: true,
                    autoOpen: true,
                    show: 'slide',
                    hide: 'drop',
                    resizable: false,
                    dialogClass: 'noFloat',
                    buttons: { "Ok": function() { $(this).dialog("close"); 

                                                } }
                });

IE の場合、新しいプラグインを作成する前にダイアログ プラグインを破棄する必要があるようです。クロージング効果を維持したかったので、最初に「破壊」を残しました。ここで欠けているのは、プラグインを破棄する前に、プラグインが存在するかどうかを確認することです。ただし、エラーなしで動作します。理由がわからないこと。

しかし、これはまだ質問に答えていません.なぜ問題が最初に存在したのか、この特定の組み合わせに対してのみ、IEでのみ. 誰か理由を教えてくれませんか?

于 2011-08-19T15:01:26.707 に答える