(function($) { $.fn.tree = function() { return this.each(function(){ var $$ = $(this).addClass('tree'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; })(jQuery); (function($) { $.fn.tree2 = function() { return this.each(function(){ var $$ = $(this).addClass('tree2'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree3 = function() { return this.each(function(){ var $$ = $(this).addClass('tree3'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree4 = function() { return this.each(function(){ var $$ = $(this).addClass('tree4'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree5 = function() { return this.each(function(){ var $$ = $(this).addClass('tree5'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree6 = function() { return this.each(function(){ var $$ = $(this).addClass('tree6'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree7 = function() { return this.each(function(){ var $$ = $(this).addClass('tree7'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree8 = function() { return this.each(function(){ var $$ = $(this).addClass('tree8'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree9 = function() { return this.each(function(){ var $$ = $(this).addClass('tree9'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree10 = function() { return this.each(function(){ var $$ = $(this).addClass('tree10'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree11 = function() { return this.each(function(){ var $$ = $(this).addClass('tree11'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree12 = function() { return this.each(function(){ var $$ = $(this).addClass('tree12'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; $.fn.tree13 = function() { return this.each(function(){ var $$ = $(this).addClass('tree13'); // Applique la classe 'file' aux "li" qui n'ont pas d'enfants $('li:not(:has(ul))', $$).addClass('file'); // Applique la classe 'folder' aux "li" qui ont des enfants $('li:has(ul)', $$).addClass('folder'); // Masque tous les "ul" sous les dossiers $('.folder ul', $$).hide(); // Affiche/masque le "ul" sous le folder lorsqu'il est cliqué // et y ajoute/supprime la classe "open" puis stoppe la propagation // pour que les dossiers supérieurs ne "recoivent pas" le clic $('.folder', $$).click(function(e) { $('ul:first', this).slideToggle(); $(this).toggleClass('open'); e.stopPropagation(); return false; }); // Stoppe la propagation du clic sur les fichiers // pour que les dossiers supérieurs ne "recoivent pas" le clic // et se ferment $('.file', $$).click(function(e) { e.stopPropagation(); }); // Fonction comptant les enfants et affichant le compteur function addCounters() { // Supprime les anciens compteurs $('.counter', $$).remove(); // Ajoute les nouveaux compteurs $('.folder > a', $$).append(function() { var parent = $(this).parent(); var count = $('.file', parent).size(); return ' ('+ count +') '; }); } addCounters(); }); }; })(jQuery); $(function() { $('#tree').tree(); $('#tree2').tree2(); $('#tree3').tree3(); $('#tree4').tree4(); $('#tree5').tree5(); $('#tree6').tree6(); $('#tree7').tree7(); $('#tree8').tree8(); $('#tree9').tree9(); $('#tree10').tree10(); $('#tree11').tree11(); $('#tree12').tree12(); $('#tree13').tree13(); });