有关原始问题的修订版
,请参阅下面的初始问题编辑使用jquery-ui对话框我希望能够动态指定按钮上的标签。
要做到这一点,我正在指定一个按钮数组,如下所示:
var arrbuttons = {};
arrbuttons.cancel = function() { alert('test1');};
arrbuttons.update = function() { alert('test2');};
$(function() {
$( "#dialog" ).dialog({buttons: arrbuttons});
});
我从this stackoverflow answer得到了它,并且它可以正常工作。
我现在想知道的是如何设置数组,以便为'arrbuttons'的每个元素指定每个按钮的标签。
The jquery-ui documentation显示了如何使用这样的内联数组执行此操作:
$( ".selector" ).dialog({ buttons: [
{
text: "Ok",
click: function() { $(this).dialog("close"); }
}
] });
但是jquery doco中没有对应to the answer的例子我正在尝试。
有人知道吗?
好的,我现在已经开始研究这个了。通过执行以下操作,我可以指定按钮的文本。问题是功能部分不再起作用(即按钮被标记为'哇!'和'kapow!'但是当你点击它们时没有任何反应。
var arrbuttons = {};
arrbuttons.cancel = {click: "function() { alert('test1');}", text:"wow!"};
arrbuttons.update = {click: "function() { alert('test2');}", text:"kapow!"};
$(function() {
$( "#dialog" ).dialog({buttons: arrbuttons});
});
关于如何做到这一点的任何想法?
答案 0 :(得分:2)
按钮的“数组”实际上是一个javascript对象。
如果你更改了发布到此的最新代码段,它应该可以正常工作:
var arrbuttons = [];
arrbuttons.push({click: "function() { alert('test1');}", text:"wow!"});
arrbuttons.push({click: "function() { alert('test2');}", text:"kapow!"});
$(function() {
$( "#dialog" ).dialog({buttons: arrbuttons});
});
在这里,您看到arrbuttons
实际上是一个javascript对象数组,jQuery将其识别为具有click
和text
属性,这就是api所期望的传入一个数组。我认为你已经混淆了你的方法签名,这让jQuery生气了。
答案 1 :(得分:2)
删除函数语句
周围的双引号