Pregunta

Estoy usando el jQuery Treeview plugin.Echa un vistazo a la "Muestra 1 - default" proporcionada en la página de demostración del plugin http://jquery.bassistance.de/treeview/demo/.En mi caso todos los archivos y carpetas están los enlaces.Si hago clic en, por ejemplo, en la ampliación de la "Carpeta de 2" será la primera colapso y, a continuación, siga a la ubicación del enlace.El comportamiento de los que me gustaría es, que sólo plegados se expanda primero y si ya se expandió y se quede como esta.

El código del plugin (jquery.treeview.js) que cambian el comportamiento es el siguiente:

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

Ya he descubierto la manera de obtener todos los vínculos, los cuales deben ser cambiados:

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

El resultado será una matriz de todos los li que actualmente plegable (ampliado):[li., li.plegable]

Pero no sé cómo proceder a partir de ahí :-( Espero que alguien me pueda ayudar a lo largo de...

Ya he cambiado correctamente el linkbehavior para el actual seleccionado (clase=seleccionado) enlace con este código:

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

Muchas gracias de antemano!

No hay solución correcta

Otros consejos

tal vez no era claro lo que realmente quiero hacer, así que voy a intentar mejorar mi verbalización próxima vez ;-)

La respuesta a mi propia pregunta es:

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

Tal vez ayuda a alguien que está buscando algo similar.

Saludos!!

ACTUALIZACIÓN (el publicado solución anterior no funciona si el usuario se expandió un nodo sin necesidad de recargar la página después)

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

Éste funciona como se supone.:-)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top