2016-03-11 102 views
0

我試圖將json傳遞給一個函數,該函數接着使用json並顯示動態的ui-模式對話框。當我嘗試傳遞按鈕事件(函數)時,你正在執行並返回undefined如何將引用傳遞給函數而不是實際函數。對不起,我的英語下面的代碼解釋好得多:javascript窗口['func']參數返回undefined而不是函數

//heres my ui model function 
function showDialog(json) { 
     var dialog_id = json.id; 
     if(typeof($(dialog_id)[0]) === "undefined") { 
      $(body).append("<div id='dialog-confirm'></div>"); 
     } 
     $(dialog_id).html(json.confirmationText); 
     $(dialog_id).dialog({ 
      modal: true, 
      title: json.title, 
      height: 250, 
      width: 400, 
      buttons:json.buttons 
     }); 

}

//here is the function which calls 
showDialog({"id":"#dialog-confirm","title":"blaa","confirmationText":'randomtext',"buttons":[{"text":"Cancel","click":window["noAction"]},{"text":"Confirm","click":window["doAction"]('pram1','param2')}]}); 

var noAction = function(){$('#dialog-confirm').dialog('close');} 
var doAction = function(param1,param2){//do some logic}; 

noAction功能是否正常工作。 (當模型被調用並且點擊取消時,對話框消失)

doAction函數showDialog被調用並且返回undefined(在控制檯中驗證)時得到評估。我如何綁定doAction來確認按鈕。 (即,點擊確認時,我想調用doAction)。

P.S:我知道如何在點擊處理程序上使用自定義功能,但我認爲這將是一種解決方法,但不是實際的解決方案。

任何幫助,非常感謝。提前致謝!

回答

1

嘗試 showDialog({..., "buttons":[...,{"text":"Confirm","click":function(){doAction(param1,param2);} }]})

+0

沒錯試了一下......功能是越來越只要ShowDialog的被稱爲評估相同的行爲。我要的是點擊確認時,才執行。謝謝 –

+0

謝謝你雖然你的答案沒有解決我的問題,它幫助我在我做錯了什麼:) upvote –