0

私はdivを持っています:

<div id="dialog"></div>

また、JQueryUI ダイアログを表示する JavaScript 関数があります。

ui_info(title,txt)
{
     $('#dialog').attr('title', title).text(txt).dialog({
    width: 500,
    buttons:
[{
    text: 'OK',
    click: function ()
    {
        $(this).dialog('close');
    }
}
],
});
return false;
}

私の問題は、タイトルとテキストを正しく取得したら、このメソッドを呼び出す場合です。しかし、もう一度呼び出すと、テキストが変更されますが、ダイアログのタイトルは変わりません。たとえば、この関数を次のように呼び出すと:

ui_info('First title','This is the first text');

タイトル「This is title 1」とテキスト「This is the first text」を取得します。そして、次のようにもう一度呼び出すと:

ui_info('Next title','The text is different now');

テキストの場合は「テキストが異なります」が表示されますが、これは私が望むものですが、タイトルの場合は「最初のタイトル」を取得しますが、「次のタイトル」を期待しています

4

1 に答える 1

1

$(this).dialog('destroy');の代わりに使用$(this).dialog('close');

あなたのバージョンのデモ: http://jsfiddle.net/wCWTE/1/

修正版のデモ: http://jsfiddle.net/wCWTE/

closeそれでもメソッドを使用したい場合は、openイベントを使用し、ダイアログ設定によってデフォルトで指定されたオプションを使用してタイトルを設定できるため、次のようになります。

function ui_info(title,txt)
{
  $('#dialog').text(txt).dialog({
    width: 500,
    buttons:
    [{
       text: 'OK',
       click: function ()
       {
          $(this).dialog('close');
       }
    }],
    open:function() {
        $(this).dialog('option','title',title)
    }
  });
}

この新しいデモをご覧くださいhttp://jsfiddle.net/wCWTE/2/

于 2012-10-29T07:58:35.870 に答える