2013-07-25 54 views
0

我使用這個問題作爲多用途jQueryUI對話框功能的基礎,我可以在我的網站中重複使用Question 17013222我希望能夠重用代碼來顯示不同的按鈕,函數調用jQueryUI對話框使用回調的動態按鈕

但是,當擴展此答案以使用回調函數時,我不會得到我需要的結果。當我構建動態按鈕而不是按下對話框保存按鈕時,回調函數正在運行。

我有一個的jsfiddle這裏顯示了我的無能jsFiddle

什麼我需要做的就是回調的保存按鈕運行被點擊?

下面是簡單的代碼片斷

function showDialog(inToDisplay, inTitle, buttonSetup, inSaveCallback) { 
'use strict'; 
var dialog_buttons = {}; 

$('#jqDialog').load(inToDisplay + '.asp', function() { 
    $(this).attr('title', inTitle); 
    /*Build our button choices*/ 
    if (buttonSetup === 'closeonly') { 
     dialog_buttons['Close'] = function() { 
      $(this).dialog("close"); 
      $(this).dialog("destroy"); 
     } 
    } else if (buttonSetup === 'savecancel') { 
     dialog_buttons['Save'] = function() { 
      if (inSaveCallback && typeof (inSaveCallback) === "function") { 
       inSaveCallback; 
      }; 
      $(this).dialog("close"); 
      $(this).dialog("destroy"); 
     } 
     dialog_buttons['Close'] = function() { 
      $(this).dialog("close"); 
      $(this).dialog("destroy"); 
     } 
    } 

    $(this).dialog({ 
     autoOpen: false, 
     modal: true, 
     open: function (event, ui) { 
     }, 
     buttons: dialog_buttons 
    }); 
    $('#jqDialog').dialog('open'); 

}); 
} 

function saveAnswer() { 
    alert('ToDo: Save data here'); 
} 

$(document).ready(function() { 
    showDialog('ajax_manageAnswer', 'Enter your answer details', 'savecancel', saveAnswer()); 
}); 

回答

1

這裏... http://jsfiddle.net/reigel/zpyNM/

改變這種

$(document).ready(function() { 
    showDialog('ajax_manageAnswer', 'Enter your answer details', 'savecancel', saveAnswer); // remove() on saveAnswer... 
}); 

dialog_buttons['Save'] = function() { 
     if (inSaveCallback && typeof (inSaveCallback) === "function") { 
      inSaveCallback(); // add -->>() 
     }; 
     $(this).dialog("close"); 
     $(this).dialog("destroy"); 
    } 
+0

那太好了,非常感謝。 ..當你k時簡單現在怎麼辦! –

相關問題