quiero hacer un menu dropdown con jquery y xml, pero este me esta funcionando mal. el problema es que una vez que entra en un sub menu este me lo repite en el nivel anterior. me es un poco complicado explicarlo por lo que les pongo un diagrama para q me entiendan mejor el numero es el orden en que se ejecuta
asi es como lo quiero
menu 1
|-----menu 2
|-----menu 3
| |-------menu 4
| |-------menu 5
y asi es como me sale ahora
menu 1
|-----menu 2
|-----menu 3
| |-------menu 4
| |-------menu 5
|
|------menu 6 (este es el 4 que se repite)
|------menu 7 (este es el 5 que se repite)
aqui esta el js
Código:
XML$(document).ready(function(){ jQuery.ajax({ type: "GET", url: "paginas/principal.xml", dataType: "xml", success: function(xml) { var $menu = jQuery(xml).find('BARRA_MENU'); function makeToc($menu) { var markup = ""; function processXml() { count++; markup += "<li><a href='" + jQuery(this).attr("url") + "'>" + jQuery(this).attr("nombre") + "</a>"; if (jQuery(this).children().length) { markup += "<ul>"; jQuery(this).find("ENLACE").each(processXml); markup += "</ul>"; } markup += "</li>"; } $menu.children().each(processXml); return markup; } var tocOutput = makeToc($menu); jQuery(".menus").html(tocOutput); } }); });
Código:
<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="xsl/principal.xsl"?> <XML> <BARRA_MENU> <ENLACE nombre="Portada" url="#"></ENLACE> <ENLACE nombre=" F T P " url=""> <ENLACE nombre=" Economia " url="http://www.ftp.cu/"></ENLACE> <ENLACE nombre=" Informatica " url=""> <ENLACE nombre=" Redes " url="http://www.ftp.cu/"></ENLACE> <ENLACE nombre=" Web " url="http://www.ftp.cu/" > <ENLACE nombre=" Sitios " url="http://www.ftp.cu/"></ENLACE> </ENLACE> </ENLACE> </ENLACE> <ENLACE nombre="Actividades" url="#"></ENLACE> </BARRA_MENU> <XML>