2011-01-29 35 views
3

嘿,編碼器,我想初始化一個對話框,用一個回調函數來說'保存'按鈕,但我希​​望回調作爲一個獨立的函數駐留,而不是定義內聯使用函數() {....}下面的代碼片段突出了我想要做的事情。設置一個jQuery對話框按鈕回調

$("#dialog-form").dialog({ 
     autoOpen: false, 
     height: 300, 
     width: 350, 
     modal: true, 
     buttons: { 
      "Save": saveAction() 
... 
function saveAction() 
{ 
} 

什麼是「保存」:saveAction()行的正確語法,因爲它似乎不工作?

感謝

回答

3

saveAction,使之後的功能執行的括號。用這個代替:

 "Save": saveAction 
+0

太棒了!謝謝moff。如果我需要傳遞一些參數給函數呢?我怎樣才能做到這一點? – djeetee 2011-01-29 18:37:57

+2

如果您需要將參數傳遞給該函數,您需要從匿名函數中調用它,例如`「Save」:function(){saveAction(a,b)})` – Johannes 2014-04-15 22:45:21

0

saveAction必須在簽名中定義的參數:即saveAction(A,B,C),設置那麼當回調做到這一點:

"Save": saveAction({a = "val", b = "val", c = "val"}) 
0

如果你要通過當W執行

"Save": function() { saveAction({a = "val", b = "val", c = "val"}) } 

這有效地定義了一個新的匿名函數,它沒有參數,其中:在參數中,必須用你的函數調用一個匿名函數定義,像這樣生病與你想要的參數調用你自己的功能。