- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- [jQuery]: menu con sliding
-
[jQuery]: menu con sliding
Salve a tutti. Ho un problema con questo codice. Sto cercando di creare un menu con sliding "esclusivo", ovvero che funzioni in questo modo. Quando clicco su un link nel menu (quindi su 1.0 o 2.0), vorrei far aprire con sliding il sotto menu relativo, andando a chiudere con sliding eventuali altri sottomenu già aperti. Così, i vari sotto menu si aprono correttamente, ma non si chiudono quelli eventualmente aperti aperti (se clicco su 2.0, si apre il sottomenu, ma se poi clicco su 1.0, il sottomenu di 2.0 non si chiude). Potete darmi una mano?
Graziecodice:
[html]
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">$(document).ready(function(){ $("li > div").hide(); $("a").click(function(){ if($(this).parent().parent().get(0).id == "menu") { if($(this).siblings().display = "none") $(this).siblings().slideDown("slow"); } }) }) </script>
</head>
<body>
<a href="#">Non slide</a><ul id="menu"> <li> <a class="uno" href="#">1.0</a> <div> <ul class="subMenu"> <li><a href="#">Menu 1.1</a></li> <li><a href="#">Menu 1.2</a></li> </ul> </div> </li> <li> <a class="due" href="#">2.0</a> <div> <ul class="subMenu"> <li><a href="#">Menu 2.1</a></li> <li><a href="#">Menu 2.2</a></li> </ul> </div> </li> </ul>
</body>
</html>
[/html]
-
Forse così?
$(document).ready(function(){ $("#menu > li > div").toggle(); $("#menu > li > a").click(function () { var index = $("#menu > li > a").index(this); $("#menu > li > div").each(function () { var index2 = $("#menu > li > div").index(this); if (index == index2) { $(this).toggle('slow'); } else { $(this).hide('slow'); } }); }); });
-
È quello che interesserebbe anche a me...se invece lo volessi sviluppare in orizzontale invece che verticale ?
Ed è possibile nidificare altri menu ?Grazie!!