试图动态更改多个jQuery UI对话框()按钮.
下面代码的问题是在对话框的第一个实例中只显示一个按钮().应显示两个按钮.
jsFiddle here:
$(function(){
var dlg = $('#message');
dlg.dialog({
autoOpen:false,modal:true,width: 500,close: function() {
if (seen==0 && ans > 0) {
cnt++;
seen++;
dlg.html('Here is a second message');
dlg.dialog(
'option','buttons',[{
text: 'OK',click: function() {
$(this).dialog('close');
}
}]
);
dlg.dialog('open');
}
}
});
$('#myDiv').hover(
function() {
//Hover-in
if (cnt < 1 || (cnt > 2 && cnt < 4) || (cnt > 5 && cnt < 7)) {
var msg = 'First display text goes here';
dlg.html(msg);
dlg.dialog(
'option',[{
text: 'Download',click: function() {
ans++;
$(this).dialog('close');
},text: 'Not Now',click: function() {
$(this).dialog('close');
}
}]
);
dlg.dialog('open');
}
cnt++;
},function() {
//Hover-out
//need this to prevent duplicating hover-in code (double-display dlg)
}
);
}); //END document.ready
解决方法
我试图使用
buttons的对象类型,它的工作原理:
dlg.dialog(
'option',{
"Download": function () {...},"Not Now": function () {...}
}
);
见updated jsFiddle
对象:键是按钮标签,值是单击关联按钮时的回调.
编辑:但你的数组中有一个错误,你必须有一个对象数组,并且缺少{和}.
'buttons',[
{
text: "Download",click: function () {...}
},{
text: "Not Now",click: function () {...}
}
]
见correction of your jsFiddle