2010-10-15 16 views
1

À l'intérieur de fullCalendar(), un plugin jQuery, je peux obtenir la valeur de view.visStart. En dehors de la fonction view.visStart n'est pas disponible. Comment puis-je obtenir view.visStart (et est-ce mauvais parce que c'est Global?) Ou comment puis-je insérer une fonction de clic dans l'appel du plugin? Merci.Comment insérer une fonction de clic à l'intérieur d'un appel de plugin?

$('#calendar').fullCalendar({ 
    events: "js/events.json" 
    console.log(view.visStart); //value is returned 
}); 

$('.fc-button-next').click(function() { 
    console.log(view.visStart); //view is not defined 
}); 

Répondre

1

La plus simple consiste à utiliser une variable provenant d'une portée parente.

Vous devez faire attention à comment et quand vous changez cette variable bien sûr.

Vous pouvez également renvoyer la variable en quelque sorte. Ou si vous le voulez protégé en écriture, vous pouvez renvoyer une fonction qui renvoie la variable. Mais je ne suis pas sûr comment return appels affecteraient .fullCalendar(), puisque je ne sais pas comment cela fonctionne.

(function() {      // <== Scope for your stuff 
    var myVis;      // myVis is available everywhere in your scope 
            // but it is not global 

    $(function() {            // <== Doc ready 
     $('#calendar').fullCalendar({ 
      events: "js/events.json" 
      cmyVis = view.visStart; //set myVis 
     }); 

     $('.fc-button-next').click(function() { 
      console.log(myVis);        //view is not defined 
     }); 
    }); 
}()); 
+0

C'est ce que je cherchais. – orolo

1

Peut-être que ce n'est pas ce que vous demandez, mais si vous voulez lier une fonction de clic dans un plugin jQuery vous pouvez utiliser live():

d'abord inspecter le rendu html et voir ce que le plug-in a inséré - trouve l'id ou la classe de l'élément html auquel vous essayez de lier la fonction click. Le live() va lier n'importe quel élément même après que la ligne a été appelée et l'élément est créé plus tard.

$('.pluginlink').live('click', function() { 
    //code 
}); 

Je ne sais pas si c'est ce que vous cherchez, mais une partie de la question est de savoir comment insérer une fonction de clic dans un plug-in. Bonne chance!

+0

+1 merci. D'ACCORD. J'essaierai de vivre() pour voir si je peux obtenir le clic pour fonctionner correctement. – orolo