Pour le faire dans les fichiers JS, rien de plus simple, mais il est bon de comprendre un peu la philosophie de jQuery.
jQuery cherche à faire du non-obtrusif, pour ça, il vaut mieux lui simplifier le travail en faisant du code HTML propre et simple (oublier les remote_form_for etc., faire du form_for tout simple).
Pour mettre ça dans un fichier, il faut juste :
- poser to code javascript dans /public/javascript/ et l'appeller en .js, si possible un fichier par utilisation
- utiliser la "magie" jQuery pour lancer le JavaScript quand le document html est complètement chargé, ça se fait comme expliqué dans les tutoriaux avec $(document).load(function() { /* ton code ici */ })
- charger ton fichier javascript comme normalement en Rails : <%= javascript_tag 'ton_script.js' %>
Quelques conseils pour te simplifier le boulot :
- pour éviter de multiplier les attributions de callbacks aux éléments chargés en AJAX et pour ne pas charger inutilement le PC client de méthodes multiples attribuées à plein d'éléments, faire du bubbling sur un élément inamovible parent : http://www.ender.com/2008/04/event-bubbling-in-javascript.html pour comprendre le concept, http://docs.jquery.com/Events pour plus de détails sur la gestion d'évènements par jQuery
- découpe tes fichiers de scripts par fonctionalité, évite de les séparer par vue
- plutôt que de changer les propriétés de style à la main, il vaut mieux le faire en attribuant des classes et en écrivant des fichiers css propres pour ces classes
- ne jamais oublier : un id c'est unique, une classes c'est autant de fois que tu veux, et plusieurs par éléments ça marche très bien
- pour afficher les résultats, deux solutions :
- charger un petit bout de html généré en réponse au format.js et le coller tel quel (généralement le partiel), c'est bien pour faire vite mais c'est moins bien pour évoluer ensuite (mon conseil, commence par ça) et traiter un avec un callback de la méthode AJAX, ou utiliser la méthode $.load().
- envoyer une réponse en XML ou JSON, la lire et effectuer les résultats en construisant du HTML avec jQuery, c'est un peu plus long au début, mais ça te fait faire du webservice même sans le savoir, c'est plus léger pour le serveur et c'est plus souple
Michel Belleville
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
railsfrance@...
Pour résilier votre abonnement envoyez un e-mail à l'adresse
railsfrance-unsubscribe@...
-~----------~----~----~----~------~----~------~--~---