2010-02-02 8 views
0

나는 js noob입니다. 캘린더에서 이벤트를 클릭 할 때 호출되는 eventClick (calEvent, jsEvent, view) 이벤트를 노출하는 jQuery FullCalendar 플러그인을 사용하고 있습니다. 내 이벤트 핸들러에서 반복 이벤트 또는 전체 이벤트의 한 번만 편집할지 묻는 대화 상자가 나타납니다. 문제는 THAT 대화 상자의 버튼 클릭 핸들러가 calEvent 변수에 액세스해야하지만 $ (document) .ready이지만 eventClick 함수 외부의 대화 상자를 인스턴스화해야한다는 것입니다.jquery UI 대화 상자 - 버튼 클릭 이벤트 핸들러

여기 내 코드는 지금까지의 : 나는 eventClick 기능에서 edit_type_dialog의 버튼 클릭 이벤트 핸들러를 통해 calEvent을 얻는 방법 :

$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
    events: getEvents, 
    header: { 
     left: 'title', 
     center: 'prev,next', 
     right: 'today month agendaWeek agendaDay' 
    }, 
    theme: true, 
    eventClick: function(calEvent, jsEvent, view) { 
     if(calEvent.readOnly == true) { 
     return; 
     } 
     if(calEvent.recurring) { 
     if(calEvent.persisted) { 
      editOccurrence(calEvent); 
     } else { 
      $("#edit_type_dialog").dialog("open"); 
     } 
     } else { 
     editEvent(calEvent); 
     } 
    } 
    }); 

    $("#edit_type_dialog").dialog({ 
    modal:true, 
    autoOpen: false, 
    buttons: { 
     All:function() { 
     $(this).dialog("close"); 
     editEvent(calEvent); 
     }, 
     This:function() { 
     $(this).dialog("close"); 
     editOccurrence(calEvent); 
     }, 
     Cancel:function() { 
     $(this).dialog("close"); 
     } 
    } 
    }); 

    function getEvents(start, end, callback) { 
    //get some events 
    } 

    function editEvent(calEvent) { 
    alert("event edited"); 
    } 

    function editOccurrence(calEvent) { 
    alert("occurrence edited"); 
    } 
}); 

그래서 질문은 아래로 비등?

답변

0

가 여기에 내가 무슨 짓을했는지 (가 추천,하지만 작동 있는지 확실하지 않습니다) :

1)하여 그에게 calEvent 변수에 대한 액세스 권한을주는 eventClick 방법으로 대화 인스턴스를 이동합니다. 2) fullCalendar 인스턴스화 외부에서 여전히 $ (document) .ready() 내에 $ ("# edit_type_dialog")를 추가했습니다. hide()