Foros del Web » Programando para Internet » Jquery »

Evento Jquery visibilidad

Estas en el tema de Evento Jquery visibilidad en el foro de Jquery en Foros del Web. Saludos! En mi proyecto necesito una directiva Jquery que se ejecute cuando un elemento(div, button...etc) sea puesto como visible. He encontrado códigos como estos: @import ...
  #1 (permalink)  
Antiguo 15/05/2012, 09:34
 
Fecha de Ingreso: octubre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 0
Evento Jquery visibilidad

Saludos!

En mi proyecto necesito una directiva Jquery que se ejecute cuando un elemento(div, button...etc) sea puesto como visible.

He encontrado códigos como estos:

Código Javascript:
Ver original
  1. $("#moreOptions").slideToggle('slow', callbackFn);
  2.  
  3. function callbackFn(){
  4.  
  5.      var $link = $("#lnkMoreOpt");
  6.  
  7.      $(this).is(":visible") ? $link.text("Less Options «") : $link.text("More Options »");
  8.  
  9.  
  10. }

Pero no se si es lo que busco, el tema es que quiero un comprobador constante que verifique cuándo se pone el elemento en visible y lance una serie de instrucciones.

¿Podéis ayudarme? Muchísimas gracias a todos/as.
  #2 (permalink)  
Antiguo 15/05/2012, 09:43
 
Fecha de Ingreso: octubre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Evento Jquery visibilidad

Esto también encontré pero no realiza lo que busco, supongo que porque se ejecutan cuando se carga la página:

Código Javascript:
Ver original
  1. $(element).is(":visible")
  2. $('element:visible')
  3. $(element).css('display') == 'none'
  4. if( $(element).is(":visible") ) {
  5. // element is visible
  6. }

Gracias
  #3 (permalink)  
Antiguo 15/05/2012, 10:14
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 1 mes
Puntos: 47
Respuesta: Evento Jquery visibilidad

Podrias especificar mejor en que momento necesitas que se disparen estos eventos, podrias agruparlos por name y que el disparador recorra un bucle para cambiarles la propiedad o averiguar, puedes usar each de jquery o un bucle javascript tradicional.

Saludos
  #4 (permalink)  
Antiguo 15/05/2012, 10:21
 
Fecha de Ingreso: octubre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Evento Jquery visibilidad

Muchas gracias por contestar. A ver, expongo mi problema mejor.

INTRODUCCIÓN AL PROBLEMA
Mi herramienta en cuestión carga un grafo. Para ello, imaginate una página con un select y un canvas inicialmente vacío. Al definir esa página he definido un button, "okmessages" con display none. Al seleccionar una opción del select, se crea el json para mostrar el grafo en dicho canvas. Al finalizar la carga (es decir la creación de ese json), se cambia ese display:none por visible. Al pulsar en ese boton ahora visible, se llama al evento $("#okmessages").click() {} y ya se me muestra el canvas. Hasta ahí todo bien y funciona de maravilla.

OBJETIVO
Pues bien, el profesor quiere que el grafo se muestre una vez finalizada la carga y quitar el botón okmessages. No puedo poner la creación del canvas en ese mismo archivo js de ajax puesto que utilizo variables que pertenecen a otro js. Por tanto, lo que hago como solución es definir el botón, y cuando cambie su visibilidad, que Jquery recoja dicho evento y lance el canvas. Es decir:

1º) Creo en PHP el boton y lo defino como display:none.
2º) Selecciono una opción del select.
3º) Ajax hace que se muestre el botón.
4º) Quiero un evento en Jquery que detecte cuándo se ha habilitado la visibilidad de ese botón y me lance el canvas.

En definitiva, creo que es cambiar el evento click por otro, pero no logro averiguarlo

Muchísimas gracias!
  #5 (permalink)  
Antiguo 20/05/2012, 17:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 25
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Evento Jquery visibilidad

¿Nadie lo sabe?

Etiquetas: evento, visibilidad
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 21:43.