2012-07-20 5 views
0

jQuery 대화 상자를 사용하고 있습니다. 하나 이상의 대화 상자에서 하나 이상의 스크립트를 사용할 수 있기를 원합니다. 이렇게하려면 대화 상자에서 호출 할 수있는 콜백 함수를 할당 할 생각입니다. 이것은 적절한 방법입니까? 대화 상자 버튼을 클릭 할 때 아래 코드가 "hi"로 경고되도록하려면 어떻게해야합니까? 고마워요대화 상자에서 콜백 함수 사용

function somefunction() {alert('hi');} 

$("#clickme").click(function(){$("#dialog").data('callback',somefunction).dialog("open");}); 

$("#dialog").dialog({ 
    buttons: [ 
    { 
     text : 'Click', 
     click : function() { 
      //If $(this).data('callback') is defined, then execute the function 
     } 
    }] 
}); 

답변

0

여러 가지 방법이 있습니다 (모두 문서에 나와 있습니다). 내가 여러 페이지에이 같은 대화 상자를 사용하고

$("#dialog").dialog({ 
    buttons: { 
     "Click": function() { 
      alert("Hi"); 
      // execute callback if it is defined 
      if (callback) callback(); 
     } 
    } 
}); 
+0

:

여기에 (내 의견으로는 가장 간단한) 하나의 방법입니다. 일관된 모양 (크기 : false, 높이 : 300, 너비 : 440, 모달 : true, dialogClass : 'hide-title-bar'등)을 원하고 동일한 열기 함수()를 원합니다. 나는 이것을 각 페이지에 복제하고 싶지 않고 같은 대화 상자를 사용하고 다르게 적용하고 싶다. 때로는 button()이 경고 ('안녕')하거나 DOM을 수정할 수있는 경우가 있습니다. 따라서 필요한 모든 스크립트를 포함 할 callback() 함수를 실행해야합니다. – user1032531

+0

익명 함수 대신 콜백 함수를 포함 하시겠습니까? 나는 이해하지 못한다. –

+0

죄송합니다, 명확하지 않았습니다. 나는 모든 페이지에 공통적 인 익명의 함수에 다른 코드를 가지고있다. 해당 코드를 실행하고 콜백 함수가 정의되어 있으면 해당 코드를 실행합니다. – user1032531