Frage

Ich bin mit der jQuery-Plugin Treeview. Werfen Sie einen Blick auf den „Sample 1 - default“, die auf der Demo-Seite des Plug-in http: // jquery.bassistance.de/treeview/demo/ . In meinem Fall alle Ordner und Dateien sind Links. Wenn ich zum Beispiel auf dem erweiterten „Ordner 2“ klicken, wird es zuerst zusammenbrechen und dann auf den Link Standort folgen. Das Verhalten Ich mag würde, ist, dass nur diejenigen kollabierten ersten erweitern und, wenn es bereits erweitert wird es so bleiben.

Der Code in der Plugin (jquery.treeview.js), die das Verhaltens umschalten ist die folgende:

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

Ich habe bereits herausgefunden, wie alle die Links zu bekommen, was geändert werden soll:

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

Das Ergebnis wird ein Array alle li sein, die derzeit zusammenklappbar sind (erweitert): [Li., Li.collapsable]

Aber ich weiß nicht, wie von dort aus gehen :-( Hoffentlich jemand mir helfen könnte entlang ...

ich erfolgreich die linkbehavior für den aktuell gewählten bereits geändert (class = ausgewählt) Link mit diesem Code:

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

Vielen Dank im Voraus!

Keine korrekte Lösung

Andere Tipps

Vielleicht war es nicht klar, was ich wirklich tun möchte, so werde ich versuchen, meine Verbalisierung beim nächsten Mal zu verbessern ;-)

Die Antwort auf meine eigene Frage lautet:

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

Vielleicht hilft es jemanden, der für etwas ähnliches sucht.

Mit freundlichen Grüßen !!

UPDATE (die geposteten Lösung über Arbeit nicht, wenn der Benutzer erweitert, um einen Knoten, ohne die Seite nach dem erneuten Laden)

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

Dieses funktioniert wie es soll, es zu. : -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top