Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/03/2015, 09:59
liranan
Invitado
 
Mensajes: n/a
Puntos:
Evitar que una función se repita

Hola!

Mi problema es el siguiente.

Tengo varias funciones que cumplen su cometido pero se repiten en ciertas condiciones.
Una función es para desplegar un menú al pasar el ratón sobre una imagen, la otra es hacer un scroll del body al hacer click sobre cierto texto.

Pongo el ejemplo del scrollTop:

Código jquery:
Ver original
  1. $('.trigger').click(function(e){
  2.                 e.preventDefault();
  3.                 $("body", "html").animate({
  4.                         scrollTop: $(this).offset().top
  5.                 }, 600);
  6.         });

Al cargar la página y hacer click sobre el gatillo concreto, se realiza la acción, el scroll baja hasta el punto deseado. Sin embargo, si una vez con la página ya en la posición correcta vuelvo a hacer click sobre el gatillo (una o varias veces), al intentar hacer scroll hacia arriba, la acción se ejecuta como si se quedara almacenada y esperara a poder ser ejecutada.

Lo mismo me ocurre con el menú desplegable, funciona, pero si paso varias veces el ratón sobre la imagen el menú comienza a abrirse y cerrarse un montón de veces.

Lo que me gustaría hacer es evitar esas repeticiones, que esas funciones no se quedaran en "stand by" esperando a ser ejecutadas sino que, si ya se han ejecutado o no hace falta ejecutarlas, se descartaran.

Espero haberme explicado bien.
Gracias.
Gonzalo.