javascript - Migrating menu tree code from jquery 1.7.1 to 1.9.1 -
i've js code working jquery 1.7.1 broken after migration 1.9.1 can see problem on http://jsfiddle.net/qk5ld/2/.
the code i'm using this:
$("#navigation li ul").each(function(){ var = this; $(this).hide(); $(this).prev().toggle(function() { $(that).show(); }, function() { $(that).hide(); } ); })
i read toggle() no more supported i'm no js expert , i've lost many hours trying complete update js code.
any idea? thank in advance.
nicola.
note: html used this:
<div id="navigation"> <ul> <li id="category-2850"> <a href="/category/archiviazione/">archiviazione</a> <ul> <li id="category-3021"> <a href="/category/archiviazione/archiviazione-modulare/">archiviazione modulare</a> <ul> <li id="category-3326"><a href="/category/archiviazione/archiviazione-modulare/scatole-archivio-con-maniglie/">scatole archivio con maniglie</a></li> <li id="category-3022"><a href="/category/archiviazione/archiviazione-modulare/scatole-archivio-in-cartone/">scatole archivio in cartone</a></li> </ul> </li> <li id="category-2876"> <a href="/category/archiviazione/buste-trasparenti/">buste trasparenti</a> <ul> <li id="category-2917"><a href="/category/archiviazione/buste-trasparenti/buste-a-perforazione-universale/">buste perforazione universale</a></li> <li id="category-2916"><a href="/category/archiviazione/buste-trasparenti/buste-a-u/">buste u</a></li> <li id="category-2877"><a href="/category/archiviazione/buste-trasparenti/buste-per-usi-diversi-e-dedicati/">buste per usi diversi e dedicati</a></li> </ul> </li> </ul> </li> <li id="category-3100"> <a href="/category/arredamento-e-complementi/">arredamento e complementi</a> <ul> <li id="category-3101"> <a href="/category/arredamento-e-complementi/complementi-d-arredo/">complementi d'arredo</a> <ul> <li id="category-3102"><a href="/category/arredamento-e-complementi/complementi-d-arredo/accessori-vari/">accessori vari</a></li> <li id="category-3215"><a href="/category/arredamento-e-complementi/complementi-d-arredo/appendiabiti/">appendiabiti</a></li> <li id="category-3307"><a href="/category/arredamento-e-complementi/complementi-d-arredo/cestini-e-posacenere/">cestini e posacenere</a></li> <li id="category-3189"><a href="/category/arredamento-e-complementi/complementi-d-arredo/lampade-da-tavolo/">lampade da tavolo</a></li> <li id="category-3214"><a href="/category/arredamento-e-complementi/complementi-d-arredo/lampade-da-terra/">lampade da terra</a></li> <li id="category-3217"><a href="/category/arredamento-e-complementi/complementi-d-arredo/orologi-barometri-da-scrivania-e-da-parete/">orologi - barometri da scrivania e da parete</a></li> <li id="category-3336"><a href="/category/arredamento-e-complementi/complementi-d-arredo/piante-sintetiche-e-vasi/">piante sintetiche e vasi</a></li> <li id="category-3216"><a href="/category/arredamento-e-complementi/complementi-d-arredo/portaombrelli/">portaombrelli</a></li> <li id="category-3173"><a href="/category/arredamento-e-complementi/complementi-d-arredo/tappeti-e-zerbini/">tappeti e zerbini</a></li> <li id="category-3328"><a href="/category/arredamento-e-complementi/complementi-d-arredo/tavolini-e-sedie-zona-ristoro/">tavolini e sedie zona ristoro</a></li> </ul> </li> </ul> </li> </ul> </div>
your code becomes cleaner in 1.9:
$("#navigation li ul").each(function(){ var = this; $(this).hide().prev().click(function(e) { e.preventdefault(); $(that).toggle(); }); });
though have worked in previous versions too.
update: here's better way:
$("#navigation li ul").hide().prev().click(function(e){ e.preventdefault(); $(this).next().toggle(); });
Comments
Post a Comment