2010-02-02 4 views
0

Je suis un js noob. J'utilise le plugin jquery FullCalendar qui expose un événement eventClick (calEvent, jsEvent, view) qui est appelé lorsque vous cliquez sur un événement dans le calendrier. Dans mon gestionnaire d'événements, je veux faire apparaître une boîte de dialogue demandant si l'utilisateur veut éditer seulement une occurrence d'un événement récurrent ou l'événement entier. Le problème est que les gestionnaires de clics de bouton pour cette boîte de dialogue doivent avoir accès à la variable calEvent, mais je dois instancier la boîte de dialogue dans $ (document) .ready mais en dehors de la fonction eventClick.jquery ui dialog - bouton cliquez sur les gestionnaires d'événements

Voici mon code à ce jour:

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

La question se résume à: comment puis-je le calEvent vers les gestionnaires d'événements de clic de bouton dans la edit_type_dialog de la fonction eventClick?

Répondre

0

Voici ce que je l'ai fait (pas sûr s'il est recommandé, mais il fonctionne):

1) Déplacer la boîte de dialogue instanciation dans la méthode eventClick, ce qui lui donne accès à la variable calEvent. 2) En dehors de l'instanciation fullCalendar, mais toujours dans $ (document) .ready() j'ai ajouté $ ("# edit_type_dialog"). Hide()