jquery treeview plugin alterar o comportamento do link (evitar o colapso)
-
23-09-2019 - |
Pergunta
Estou usando o jQuery Treeview plugin.Ter um olhar para o "Exemplo 1 - padrão", previsto na página de demonstração do plugin http://jquery.bassistance.de/treeview/demo/.No meu caso todas as pastas e arquivos são links.Se eu clicar, por exemplo, no expandida "Pasta 2" será a primeira colapso e, em seguida, siga para o local do link.O comportamento que eu gostaria é, que só desabou queridos irá expandir primeiro e se ele estiver expandida ele vai ficar como este.
O código do plugin (jquery.treeview.js) que mude o comportamento, é a seguinte:
66 this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
67 toggler.apply($(this).next());
68 }).add( $("a", this) ).hoverClass();
Eu já descobriu como obter todas as ligações, o que deve ser mudado:
$('a').parent().parent().filter('.collapsable')
O resultado será uma matriz de todos os que li são atualmente flexível (expandido):[li., li.flexível]
Mas eu não sei como proceder a partir daí :-( Espero que alguém possa me ajudar ao longo do...
Eu já alterada com êxito o linkbehavior para o atual selecionada (classe=seleccionado) link com este código:
$(".current").click(function(e){
e.preventDefault();
});
Muito obrigado antecipadamente!
Nenhuma solução correta
Outras dicas
talvez ele não foi claro o que eu realmente quero fazer, então eu vou tentar melhorar o meu verbalização próxima vez ;-)
A resposta para minha pergunta é:
$('li').filter('.collapsable').find('a:first:not(.current)').click(function(e){
e.stopImmediatePropagation();
});
Talvez ele ajuda a alguém que está à procura de algo semelhante.
Melhores cumprimentos!!
ATUALIZAÇÃO (postado solução acima não funcionar se o usuário expandida de um nó sem recarregar a página a seguir)
$('a').click(function(e){
if ($(this).is('.current')) {
e.preventDefault();
} else if ($(this).parent().parent().is('.collapsable')) {
e.stopImmediatePropagation();
};
});
Este funciona como deveria.:-)