2011-07-07 164 views
1

我在我的應用程序中使用jQuery Impromptu提示,它們非常有幫助。Javascript中的動態變量名稱

但是調用即興提示您需要指定按鈕名稱和它們的返回值,像這樣:

$.prompt('Example 2',{ buttons: { Ok: true, Cancel: false } }); 

我真的很想有動態按鈕的名稱,像這樣:

function showprompt(question, button1, button2) { 
    $.prompt(question,{ buttons: { button1: true, button2: false } }); 
} 

但這似乎不起作用,按鈕只被稱爲'button1'和'button2'!

我試過使用eval(button1)''+button1,但它們會引起語法錯誤。

有什麼建議嗎?

回答

8

由於對象字面值中的屬性名稱可能是標識符(而不是字符串),因此您無法爲它們使用變量。

您必須創建該對象,然後使用方括號表示法來分配值。

function showprompt(question, button1, button2) { 
    var buttons = { }; 
    buttons[button1] = true; 
    buttons[button2] = false; 
    $.prompt(question,{ buttons: buttons }); 
} 
+0

太棒了,謝謝! – cusimar9