设置一次后,标题属性值保持不变

时间:2012-10-29 07:44:29

标签: jquery

我有一个div:

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

还有一个javascript函数可以调出JQueryUI对话框:

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');

我得到标题'这是标题1'和文本'这是第一个文本'。如果我再次这样称呼它:

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

对于文字,我会得到'文字现在不同',这就是我想要的,但对于标题,我仍然得到'第一个标题',而我期待'下一个标题'

1 个答案:

答案 0 :(得分: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/