2011-04-19 58 views
1

我有以下問題。我試圖在模態對話框中添加動態按鈕。但我不知道,我怎麼可以給每個按鈕的功能。jQuery對話框按鈕中的動態函數

我有以下幾點:

 for(i=0;i<buttons.length;i++){ 
      arrButton[i] = { id : buttons[i].name , text : buttons[i].label , click : function(){ buttons[i].onclick } }; 
    } 
    $("#divFormulario").dialog 
     ({ modal : true, 
      title : titulo, 
      resizable: false, 
      buttons : arrButton  
     }); 

舉例來說,如果我有以下幾點:buttons[i].onclick = "functionAlert();,當我創建按鈕具有click事件與buttons[i].onclick,但我需要functionAlert() click事件。我究竟做錯了什麼?

+0

你能不能只需要點擊:function(){functionAlert(); }? – locrizak 2011-04-19 14:38:26

+0

您可能只需爲對話框所需的按鈕陣列使用相同的對象格式,因此您只需傳遞「按鈕」數組,而不是將整個事件複製到「arrButton」中。 – DarthJDG 2011-04-19 14:45:09

+0

如果你的dynamicaly創建按鈕,使用[.live()](http://api.jquery.com/live/) – tenshimsm 2011-04-19 14:51:01

回答

3

假設你有一個函數:

function functionAlert() { ...some code... } 

的傳遞功能,而是作爲字符串,只是做:

那麼你的循環應該是:

for(i=0;i<buttons.length;i++){ 
    arrButton[i] = { id : buttons[i].name , text : buttons[i].label , click : buttons[i].onclick }; 
} 
+0

是一個好主意謝謝,但我試過這個,這個問題是下面的消息「Microsoft JScript:.....'apply'」這個錯誤是在這裏產生的「h.click.apply(b.element [0],arguments)」Jquery的文件 – user715389 2011-04-19 14:50:38

+0

Thanks Master !!!!我做了一些調整,它的工作, – user715389 2011-04-19 15:03:19