jquery-ui按钮作为数组 - 设置标签的例子?

时间:2011-09-28 10:58:59

标签: jquery jquery-ui

有关原始问题的修订版

,请参阅下面的初始问题编辑

使用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});
});

关于如何做到这一点的任何想法?

2 个答案:

答案 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将其识别为具有clicktext属性,这就是api所期望的传入一个数组。我认为你已经混淆了你的方法签名,这让jQuery生气了。

答案 1 :(得分:2)

删除函数语句

周围的双引号