jquery comportamento cambiamento TreeView plugin di collegamento (evitare il collasso)
-
23-09-2019 - |
Domanda
Sto usando il plugin jQuery TreeView. Date un'occhiata al "Campione 1 - default" prevista nella pagina demo del plug-in http: // jquery.bassistance.de/treeview/demo/ . Nel mio caso tutte le cartelle ei file sono collegamenti. Se clicco ad esempio sulla "Cartella 2" sarà ampliato prima collassare e poi seguire il percorso di collegamento. Il comportamento che vorrebbe è che solo quelle collassate si espanderanno primo e se già espanso vi rimane così.
Il codice nel plugin (jquery.treeview.js) che permettono di passare il comportamento è il seguente:
66 this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
67 toggler.apply($(this).next());
68 }).add( $("a", this) ).hoverClass();
I già capito come ottenere tutti i link, che dovrebbero essere modificati:
$('a').parent().parent().filter('.collapsable')
Il risultato sarà un array di tutti li che sono attualmente pieghevole (espanso): [Li., Li.collapsable]
Ma io non so come procedere da lì :-( Speriamo che qualcuno mi potrebbe aiutare insieme ...
I già cambiato con successo il linkbehavior per il collegamento corrente selezionato (class = selezionato) con questo codice:
$(".current").click(function(e){
e.preventDefault();
});
Molte grazie in anticipo!
Nessuna soluzione corretta
Altri suggerimenti
forse non era chiaro quello che voglio fare in modo cercherò di migliorare il mio verbalizzazione prossima volta ;-)
La risposta alla mia domanda è:
$('li').filter('.collapsable').find('a:first:not(.current)').click(function(e){
e.stopImmediatePropagation();
});
Forse aiuta chi è alla ricerca di qualcosa di simile.
Con i migliori saluti !!
UPDATE (la soluzione postato sopra non funziona se l'utente ampliato un nodo senza ricaricare la pagina dopo)
$('a').click(function(e){
if ($(this).is('.current')) {
e.preventDefault();
} else if ($(this).parent().parent().is('.collapsable')) {
e.stopImmediatePropagation();
};
});
Questo funziona come ha supposto per. : -)