Foros del Web » Programando para Internet » Jquery »

Varios menus desplegables se abren todo en solo click

Estas en el tema de Varios menus desplegables se abren todo en solo click en el foro de Jquery en Foros del Web. Encontré un codigo para hacer un menu desplegable y me funciona perfecto cuando uso un solo menú por pagina, pero si quiero poner dos o ...
  #1 (permalink)  
Antiguo 08/08/2014, 16:01
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 16 años, 5 meses
Puntos: 11
Varios menus desplegables se abren todo en solo click

Encontré un codigo para hacer un menu desplegable y me funciona perfecto cuando uso un solo menú por pagina, pero si quiero poner dos o más menus usando el mismo codigo da el detalle que cuando clickeo en un menu se abren el resto de los menus, quiero evitar que me salga eso... ¿me echan una mano?
Dejo el codigo...

Código PHP:
$(document).ready(function()
{
$(
".socialshare").click(function()
{
var 
X=$(this).attr('id');
if(
X==1)
{
$(
".submenu").hide();
$(
this).attr('id''0');
}
else {
$(
".submenu").show();
$(
this).attr('id''1');
}
});
//Mouse click on sub menu
$(".submenu").mouseup(function()
{
return 
false
});
//Mouse click on my account link
$(".socialshare").mouseup(function()
{
return 
false
});
//Document Click
$(document).mouseup(function()
{
$(
".submenu").hide();
$(
".socialshare").attr('id''');
});
}); 
Código HTML:
<div class="dropdown">
   <a class="socialshare">Share</a>
    <div class="submenu">
      <ul class="root">
      <li ><a href="#Dashboard">Google+</a></li>
      <li ><a href="#Profile">Piterest</a></li>
      <li ><a href="#settings">Email</a></li>
      </ul>
     </div>
</div> 
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.
  #2 (permalink)  
Antiguo 08/08/2014, 17:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Varios menus desplegables se abren todo en solo click

Veo que intentas obtener el id del elemento sobre el que posas el cursor, pero no veo en la estructura que alguno de los elementos posea un valor en dicho atributo.

Particularmente, controlo a mis menúes desplegables con este pequeño script que hice:

Código Javascript:
Ver original
  1. $("nav li").hover(function(){
  2.     $(this).find("ul").slideDown("slow").css("z-index", 1000);
  3. }, function(){
  4.     $(this).find("ul").slideUp("slow").css("z-index", 1);
  5. });

Cuando posas al cursor sobre uno de los ítems de la lista, encuentro la lista desordenada que este posee, la muestro y la coloco varios niveles por encima del resto de elementos del DOM, de este modo, si hay algo abajo del menú, la lista que se despliega no quedará oculta.

Aplicando algunos estilos, así es como queda:



Para el ejemplo, utilicé dos menúes, solo para mostrarte que no ocurre el conflicto que mencionas con lo que tienes.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 08/08/2014, 17:29
Avatar de BekoxD  
Fecha de Ingreso: mayo-2008
Ubicación: Perú
Mensajes: 220
Antigüedad: 16 años, 5 meses
Puntos: 11
Respuesta: Varios menus desplegables se abren todo en solo click

@Alexis88 gracias por responder, pero lo que quiero es un menu desplegable solamente cuando hagan click en menu mas no un hover.

¿Hay algun modo de solucionar eso?
__________________
Si tú sabes lo que vales, ve y consigue lo que mereces.
  #4 (permalink)  
Antiguo 08/08/2014, 17:53
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Varios menus desplegables se abren todo en solo click

Cambia al método hover por click.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: desplegable, javascript
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 12:28.