2

わかりましたので、ここに私が達成したいことと私が直面している問題があります。手順は次のとおりです。

  1. ダイアログを開く
  2. ドラッグするか、ダイアログのサイズを変更します
  3. ダイアログを閉じる
  4. ダイアログを再度開きます。

ダイアログは最後に閉じた位置から開き、サイズは最後にサイズ変更されたものになります。ダイアログがこのように動作するのは望ましくありません。開くたびに自動幅で中央から配置したい。ダイアログの初期設定で position: 'center' と width: 'auto' を指定しましたが、役に立たないようです。

jQuery バージョン: 1.7.1 jQuery UI バージョン: 1.8.17 ブラウザー: IE9/IE8

以下は HTML です。

<div class='mydialog'></div>
<a href='#' id='one'>test1</a>

ダイアログ自体のコードは次のとおりです。

$(function(){
   var theDialog = $(".mydialog").dialog({
        autoOpen: false,            
        modal: true,
        width: 'auto',
        position: 'center',            
    });

    $('#one').click(function(){
        theDialog.html('some random text').dialog( "option", "title", "Dynamic Title").dialog('open');
    }); 
});

解決策を探してみましたが、見つかりませんでした。これは直感に反するかもしれませんが、必要なものです。

4

1 に答える 1

2

ここのドキュメントにリストされているクローズイベントを使用してみましたか:

http://jqueryui.com/demos/dialog/

次のようなことができます:

$( ".mydialog" ).dialog({
   close: function(event, ui) {
       $(this).dialog( "destroy" );

   }
}); 

ドキュメントによるとdestroy、ダイアログ機能が完全に削除されます。これにより、要素が初期化前の状態に戻ります。

リンクがクリックされるたびに再初期化されるように、クリック イベントでダイアログを初期化する必要がある場合があります。

または、クリックイベントで使用return false;して、望ましくない動作を防ぐこともできます。

于 2012-08-17T02:45:05.563 に答える