Foros del Web » Programando para Internet » Jquery »

ocultar y mostrar jquery?

Estas en el tema de ocultar y mostrar jquery? en el foro de Jquery en Foros del Web. hola amigos estoy tratando de ocultar y mostrar con jquery unos divs para que me quede como acordion, el problema es que no logro cambiar ...
  #1 (permalink)  
Antiguo 29/08/2014, 09:19
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
ocultar y mostrar jquery?

hola amigos estoy tratando de ocultar y mostrar con jquery unos divs para que me quede como acordion, el problema es que no logro cambiar el valor del boton es decir

el boton esta en mostrar, cuando le dan click muestra el div de abajo y cambia a ocultar.. tipico verdad, pero tengo problemas al segundo click con los preventDefaul me sale el error:

Uncaught TypeError: Cannot read property 'preventDefault' of undefined


y no entiendo porque :( ..les agradeceria una ayudita.
aqui les dejo el codigo vale aclarar que mi funcion es una callback de un addEventListener



Código Javascript:
Ver original
  1. function mostrar_ocultar(id){
  2.     return function(e)
  3.     {        
  4.     e.preventDefault();
  5.     $('#b_'+id).toggle(
  6.  
  7.         function(e){
  8.             $(this).slideDown();
  9.            $("#"+id).text('mostrar');
  10.            e.preventDefault();
  11.         },
  12.      
  13.        
  14.         function(e){
  15.             $(this).slideUp();
  16.             $("#"+id).text('ocultar');
  17.           e.preventDefault()
  18.         }
  19.  
  20.     ); 
  21.     }
  22. }

El error sale en la linea 17

Última edición por summerblack; 29/08/2014 a las 09:44
  #2 (permalink)  
Antiguo 29/08/2014, 09:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ocultar y mostrar jquery?

Si los botones son para mostrar y ocultar elementos, no entiendo para qué quieres prevenir la acción natural del evento click, además, el método toggle no es un evento del cual puedas capturar un evento.

Podrías también hacerlo así:

Código HTML:
Ver original
  1. <div id = "foo">Ejemplo</div>
  2. <button onclick = "showHide('#foo', this)">Ocultar</button>
  3.  
  4. <div id = "bar">Otro ejemplo</div>
  5. <button onclick = "showHide('#bar', this)">Ocultar</button>

Código Javascript:
Ver original
  1. function showHide(id, button){
  2.     $(button).text($(button).text() == "Ocultar" ? "Mostrar" : "Ocultar");
  3.     $(id).slideToggle("slow");
  4. }

De este modo, al pulsar cualquier botón, muestras u ocultas al <div> que tenga asociado y cambias el texto en el botón pulsado. El método slideToggle combina la acción de los métodos slideUp y slideDown, aplicando uno de ambos efectos según sea el estado de visibilidad del elemento a afectar.

DEMO

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 29/08/2014, 13:49
 
Fecha de Ingreso: diciembre-2012
Mensajes: 249
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: ocultar y mostrar jquery?

muchisimas gracias fue bastante facil .. me complique la vida

Etiquetas: Ninguno
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 01:28.