2011-09-28 45 views
1

見下面編輯爲原來的問題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"); } 
    } 
] }); 

但有在對應to the answer我立足我在嘗試了jQuery DOCO沒有例子。

有人知道嗎?


好的我現在已經在這一點多了。通過執行以下操作,我可以指定按鈕的文本。麻煩的是功能部件不再有效(即釦子都扣上「哇!」和「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

除去周圍函數語句雙引號 – NimChimpsky

+0

@NimChimpsky:是的!這使它工作。非常感謝。你想讓你的評論成爲答案,所以我可以接受它嗎? – shearichard

+0

好的,會做(分鐘字符) – NimChimpsky

回答

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生氣。

+0

感謝您的回答我認爲您是在正確的軌道上,對此我表示感謝,但最終似乎回到了上述NimChimpsky提到的函數聲明引用的語句。不管怎麼說,還是要謝謝你。 – shearichard