2013-07-25 2 views
0

내 사이트에서 재사용 할 수있는 다목적 jQueryUI 대화 상자 기능의 기초로이 질문을 사용하고 있습니다. Question 17013222 코드를 재사용하여 코드에 정의 된 콜백을 사용하여 다른 버튼을 표시하고 싶습니다. 함수 호출jQueryUI 대화 상자 콜백을 사용하는 동적 버튼

그러나 콜백 함수를 사용하려면이 대답을 확장 할 때 필요한 결과를 얻지 못합니다. Dialog Save 버튼을 누르는 대신 동적 버튼을 만들 때 콜백 함수가 실행 중입니다.

내가 저장 버튼으로 실행하는 콜백을 얻으려면 어떻게해야합니까 무엇 jsFiddle

를 클릭 할 때 내 무능력을 보여줍니다 여기에 jsFiddle이?

다음은 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"); 
    } 

답변

1

스 니펫입니다. .. 당신이 k 할 때 단순 해. 어떻게 지금!
+0

, 정말 고마워요 ... 단순화 된 코드가 여기

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()); }); 

관련 문제