2010-10-22 7 views
4

J'ai installé et essayé de personnaliser l'arborescence de fichiers Jquery afin que, au clic du nom du dossier, le nom et le chemin du dossier soient renvoyés à la fonction appelante. Actuellement, il ne fait que développer et réduire les dossiers, et renvoie le nom du fichier en cliquant sur le fichier.Jquery File Tree - comment retourner le nom du dossier sur le dossier cliquez sur

J'ai donc besoin de retourner le dossier et je ne peux pas voir où cela est déclenché.

J'utilise le connecteur php. lien ci-dessous est où je téléchargé le code exemple: http://abeautifulsite.net/blog/2008/03/jquery-file-tree/

grâce, Ed

+0

Ajouter votre script de connexion et votre jQuery en cours et je vais vous dire ce qui est necessaire. –

Répondre

8

Je ne sais pas s'il y a un moyen « API » pour le faire. Mais si vous regardez le code source (ligne 64-81)

if($(this).parent().hasClass('directory')) { 
    if($(this).parent().hasClass('collapsed')) { 
     // Expand 
     if(!o.multiFolder) { 
      $(this).parent().parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing }); 
      $(this).parent().parent().find('LI.directory').removeClass('expanded').addClass('collapsed'); 
     } 
     $(this).parent().find('UL').remove(); // cleanup 
     showTree($(this).parent(), escape($(this).attr('rel').match(/.*\//))); 
     $(this).parent().removeClass('collapsed').addClass('expanded'); 
    } else { 
     // Collapse 
     $(this).parent().find('UL').slideUp({ duration: o.collapseSpeed, easing: o.collapseEasing }); 
     $(this).parent().removeClass('expanded').addClass('collapsed'); 
    } 
} else { 
    h($(this).attr('rel')); 
} 

On dirait que vous pouvez appeler une autre fonction à l'intérieur du hasClass('directory') si la clause et cela fonctionnera.

Alors vous pouvez:

Change Ligne 36 à être

fileTree: function(o, h, dire) { 

Entre 65 et 66 ajouter

dire($(this).attr('rel')); 

Si vous voulez avoir plus de contrôle/flexibilité/informations, vous pouvez faire dire($(this));, et il enverra l'objet jQuery au lieu de seulement l'attribut rel.

Exemple:

$(document).ready(function() { 
    $('#container_id').fileTree({ root: '/some/folder/' }, function(file) { 
     // do something when a file is clicked 
    }, function(dir){ 
     // do something when a dir is clicked 
    }); 
}); 

Je ne l'ai pas testé, vous devrez peut-être changer quelques choses.

1

Cela a fonctionné assez bien, je viens de changer la dernière fonction de « dire », comme il était, il le code entre la ligne 65 et 66

 ... function(dire){ 
// do something when a dir is clicked 
} 
Questions connexes