Le filtrage des événements onclick avec FullCalendar et la méthode removeEvents
Je suis en train d'utiliser FullCalendar pour afficher mes événements à partir d'un flux JSON. Il fonctionne avec le code suivant:
$(document).ready(function() {
//Initialize calendar
$('#calendar').fullCalendar({
header: {
left: 'prev',
center: 'title',
right: 'next'
},
buttonText: {
prev: 'Previous month',
next: 'Next month'
},
columnFormat: {
month: 'dddd'
},
editable: false,
events: "events.json",
disableDragging: true,
});
Je suis en train de créer un lien qui va filtrer les événements (dans l'idéal, il serait sélectionnez menu) à l'aide de la removeEvents méthode. Lorsque j'utilise la méthode et passez un ID, l'événement est supprimé. La documentation précise:
idOrFilter peut aussi être une fonction de filtre qui accepte un Objet d'Événement d'argument et renvoie true si elle doit être supprimée.
J'ai lu que la fonction de filtre doit fonctionner comme jQuery grep méthode, mais je ne comprends pas comment la mettre en œuvre. J'ai commencé à écrire en dessous, mais je suis pas sûr de savoir comment continuer. Des suggestions ou des exemples serait grandement apprécié!
...
$('#filter').click(function() {
$('#calendar').fullCalendar ( 'removeEvents', filter(events) );
}
...
function filter (events) {
...
}
OriginalL'auteur M Thomas | 2010-12-17
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez un
select
pour ce faire, vous aurez besoin d'une certaine manière d'associer lesoption
s dans leselect
et les événements dans le calendrier. J'ai fait laoption
s id qui correspondent à celles des événements dans le calendrier:JavaScript (à l'aide de la
events
propriété de fullCalendar):Votre source d'événements n'a pas à être un tableau, c'est juste pour l'exemple, j'ai créé.
HTML:
Maintenant, le
removeEvent
fonction, comme vous l'avez décrit, prend un objet d'événement et renvoie une valeur booléenne indiquant si l'événement doit être supprimée:Ce que le
filter
fonction n'est retourne true si l'option sélectionnée dans le sélectionner avec l'idfilter
a un id qui correspond à l'id de l'événement qui lui est passé. Cette fonction peut vraiment être n'importe quoi, tant qu'il renvoie la valeur true ou false.La façon dont il fonctionne sous le capot, c'est que lorsque vous appelez
removeEvent
et passer votre fonction, chacun des événements de vie sur le calendrier est transmis à cette fonction, et si la valeur true est renvoyée, l'événement est supprimé.J'ai fait un exemple de travail (http://jsfiddle.net/andrewwhitaker/QMyFu/) qui comprend également un autre exemple d'une fonction de filtre et de sélectionner l'élément.
Espère que ça aide!
Hey Andrew, j'ai une autre question: comment puis-je filtrer les événements sélectionnés? Maintenant, si je filtre de Noël et puis la Boxe, la Boxe filtre ajoute le filtre existant. Je suis en train d'essayer de l'obtenir pour seulement filtre par un événement à la fois. J'ai essayé d'ajouter à rerenderevents au cours de l'sélectionnez changer de menu (en plus de l'appel de la removeevents), mais pas de chance. Merci!
Après quelques recherches, je ne peux malheureusement pas tout à fait comprendre l'une de ces questions. Le
rerenderEvents
fonction n'a pas l'air comme ça fonctionne, et je n'ai pas de flux JSON pratique pour tester votre autre question...Ok, merci de prendre un coup d'oeil.
OriginalL'auteur Andrew Whitaker