Foros del Web » Programando para Internet » Jquery »

Problema con jQuery

Estas en el tema de Problema con jQuery en el foro de Jquery en Foros del Web. Hola que tal, he estado intentando de muchas formas como solucionar un problema que tengo con jquery que no he podido solucionar y espero me ...
  #1 (permalink)  
Antiguo 09/08/2011, 15:21
Avatar de berper  
Fecha de Ingreso: abril-2009
Ubicación: Mexico
Mensajes: 74
Antigüedad: 15 años
Puntos: 2
Problema con jQuery

Hola que tal, he estado intentando de muchas formas como solucionar un problema que tengo con jquery que no he podido solucionar y espero me puedan ayudar.

Tengo un codigo similar a este:

Código Javascript:
Ver original
  1. var botones = {
  2.  
  3. cargar:function(){
  4.     $('body').prepend('<button class="boton">Hola</button>');
  5.     $('button.boton').click(function(){this.ocultar();});
  6.     },
  7.    
  8. ocultar:function(){$('button.boton').css('display')=='none';}
  9. };

Lo que se supone que debe hacer es crear un boton justo despues de la etiqueta body y que al hacer click se oculte.

Se que podria definirle el atributo "onclick", pero lo que busco es como llamar a la funcion "ocultar" desde el evento "click".

Espero que alguien tenga alguna idea de como solucionarlo, gracias.
__________________
Administrador de El Mundo de Bob Esponja
  #2 (permalink)  
Antiguo 09/08/2011, 17:55
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Problema con jQuery

El problema es que this dentro del callback del evento se refiere al elemento button.button del DOM, por lo que no tendra un metodo ocultar. Lo que necesitas hacer es guardar una referencia a this dentro de cargar y asi poder llamar el metodo ocultar.

Código Javascript:
Ver original
  1. var that = this;
  2. //...
  3. //dentro del callback
  4. that.ocultar()

O bien:
Código HTML:
Ver original
  1. botones.ocultar();

Te recomiendo que leas sobre scope y closures en JS.

Saludos
__________________
I see dead pixels
  #3 (permalink)  
Antiguo 11/08/2011, 20:51
Avatar de berper  
Fecha de Ingreso: abril-2009
Ubicación: Mexico
Mensajes: 74
Antigüedad: 15 años
Puntos: 2
Respuesta: Problema con jQuery

@SergeMedina

Gracias por tu respuesta, leeré como recomiendas sobre scope y closures.

Saludos.
__________________
Administrador de El Mundo de Bob Esponja

Etiquetas: javascript, botones
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:54.