Foros del Web » Programando para Internet » Jquery »

slide menu jquery

Estas en el tema de slide menu jquery en el foro de Jquery en Foros del Web. Hola amigos! Quiero hacer un menu con su correspondiente submenu escondido y que al pasar por el elemento del menu principal aparezca con un efecto ...
  #1 (permalink)  
Antiguo 11/12/2012, 12:18
 
Fecha de Ingreso: septiembre-2010
Mensajes: 79
Antigüedad: 13 años, 6 meses
Puntos: 1
slide menu jquery

Hola amigos! Quiero hacer un menu con su correspondiente submenu escondido y que al pasar por el elemento del menu principal aparezca con un efecto jquery de slide:

Mi código es:

<ul>
<li><a href="#">Menu1</a> |</li>
<li>
<a href="#">Menu2</a>
<ul class="submenu">
<li><a href="#">Menu2.1</a></li>
<li><a href="#">Menu2.2</a></li>
</ul>
</li>
</ul>

<script>


$(function () {
$('li').hover(function () {
$(this).('.submenu').slideToggle('slow');
})
});

</script>

Y en el css:

nav ul{
margin-top:55px;
}
nav ul li{
float:left;
margin-right: 3px;
position: relative;
}
nav ul li a{
color:#333;
padding: 5px 20px 5px 20px;
text-decoration: none;
}
nav ul li a:hover{
border-bottom: 1px solid #700;
color:#700;
}

nav ul li:hover .submenu{
display: block;
}

.submenu{
display:none;
position:absolute;
top:-35px;
}

.submenu a{
padding: 10px 20px 10px 20px;
background-color: white;
display: block;
width: 120px;
text-align: center;
}


El tema es que si en la función jquery quito 'this' (quedando asi):

<script>


$(function () {
$('li').hover(function () {
$('.submenu').slideToggle('slow');
})
});

</script>

El efecto funciona pero pasando por cualquiera de los elementos del menú y no solamente por el que debe ser.

¿A que se debe esto? ¿Pueden ayudarme?

Gracias de antemano.
  #2 (permalink)  
Antiguo 11/12/2012, 12:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: slide menu jquery

Prueba así:
Código Javascript:
Ver original
  1. $(this).find('.submenu').slideToggle('slow');
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 11/12/2012, 12:43
 
Fecha de Ingreso: septiembre-2010
Mensajes: 79
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: slide menu jquery

Gracias David por tu respuesta, ahora funciona pero al revés!!!! jeje Cuando paso por el elemento del menu desaparece y cuando salgo del elemento aparece!!

Como puede ser esto??
  #4 (permalink)  
Antiguo 11/12/2012, 12:48
 
Fecha de Ingreso: septiembre-2010
Mensajes: 79
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: slide menu jquery

Me autorespondo, quitando la sentencia del CSS:

nav ul#menu li:hover .submenu{
display: block;
}

Porque no es necesario esto?? Porque estaba convencido de que si...
  #5 (permalink)  
Antiguo 11/12/2012, 13:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: slide menu jquery

No es necesario porque el método slideToggle ya se encarga de asignar el display correspondiente.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.

Etiquetas: funcion, slide
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:22.