Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Como se evita la duplicacion de un evento??

Estas en el tema de Como se evita la duplicacion de un evento?? en el foro de Frameworks JS en Foros del Web. En mi pagina puse un scroll infinito para mostrar resultados (antes usaba paginacion tradicional), que se activa cuando el usuario llega al final, o sea: ...
  #1 (permalink)  
Antiguo 10/10/2009, 21:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 210
Antigüedad: 15 años, 5 meses
Puntos: 0
En mi pagina puse un scroll infinito para mostrar resultados (antes usaba paginacion tradicional), que se activa cuando el usuario llega al final, o sea:

Código javascript:
Ver original
  1. $(window).scroll(function(){
  2.         if($(window).scrollTop() == $(document).height() - $(window).height()){
  3.         myFuncion();
  4. }

myFuncion() es la que trae mas resultados, sumando cada vez un numero al 'offset' para la paginación.
La cosa es que si el usuario accidentalmente toca fondo 2 o mas veces, el evento se dispara mas de una vez y lo que ocurre es que se saltea resultados, ya que sumó de más para la paginación.
Como puedo evitar eso?
Probé agregando una variable de control pero no logre nada

Código javascript:
Ver original
  1. var consultando = 0;

y luego adentro de la función anonima:

Código javascript:
Ver original
  1. if(consultando!=0) { return 0 ; }

, y al finalizar la función:

Código javascript:
Ver original
  1. consultando = 0;




Alguna otra idea?

Si eso me anduviera podria incluso hacer que el evento se dispare un poco antes de estar llegando al final, porque pondria

if($(window).scrollTop() >= $(document).height() - $(window).height() -2000)

Pero si lo hago así como está, el evento se dispara un monton de veces antes de llegar al final, y se saltea monton de resultados.

Ayuda pls

nadie sabe? deberia ser algo simple

nadie?????

Última edición por GatorV; 13/10/2009 a las 15:05
  #2 (permalink)  
Antiguo 15/10/2009, 04:27
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Como se evita la duplicacion de un evento??

Hola

Parece que ibas bien encaminado. Prueba así

Cita:
var consultando = 0; // var global

if (!consultando == 0) {
return (false);
}
else
consultando++;
return (true);
}
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 13:25.