我有一个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');
对于文字,我会得到'文字现在不同',这就是我想要的,但对于标题,我仍然得到'第一个标题',而我期待'下一个标题'
答案 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/