Question

J'utilise le plugin jQuery Treeview. Jetez un coup d'oeil à la « Sample 1 - par défaut » fourni sur la page de démonstration du plugin http: // jquery.bassistance.de/treeview/demo/ . Dans mon cas, tous les dossiers et les fichiers sont des liens. Si je clique par exemple sur l'étendue « Dossier 2 » il va d'abord l'effondrement puis suivre à l'emplacement du lien. Le comportement que je voudrais est que les n'effondrés augmenteront d'abord et si déjà étendu, il va rester comme ça.

Le code dans le module (jquery.treeview.js) qui font alterner le comportement est le suivant:

66 this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
67 toggler.apply($(this).next());
68 }).add( $("a", this) ).hoverClass(); 

Je l'ai déjà pensé comment obtenir tous les liens qui doivent être modifiés:

$('a').parent().parent().filter('.collapsable')

Le résultat sera un tableau de tous li qui sont actuellement collapsable (élargi): [Li., Li.collapsable]

Mais je ne sais pas comment procéder à partir de là :-( quelqu'un pourrait me aider un peu de chance le long ...

Je l'ai déjà changé le linkbehavior pour sucessfully le lien actuellement sélectionné (class = sélectionné) avec ce code:

    $(".current").click(function(e){
        e.preventDefault();
    });

Un grand merci à l'avance!

Pas de solution correcte

Autres conseils

peut-être on ne sait pas ce que je veux vraiment faire, je vais essayer d'améliorer mon temps ;-) verbalisation suivant

La réponse à ma question est:

$('li').filter('.collapsable').find('a:first:not(.current)').click(function(e){
            e.stopImmediatePropagation();
        });

Peut-être que cela aide quelqu'un qui est à la recherche de quelque chose de similaire.

Cordialement !!

Mise à jour (la solution affichée ci-dessus fonctionne pas si l'utilisateur a élargi un nœud sans recharger la page après)

    $('a').click(function(e){
        if ($(this).is('.current')) {
            e.preventDefault();
        } else if ($(this).parent().parent().is('.collapsable')) {
            e.stopImmediatePropagation();
        };          
    });

Celui-ci fonctionne comme il le devait. : -)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top