2010-02-17 13 views
11

Tengo un enlace en una página web que abre un cuadro de diálogo modal. La primera vez que se hace clic en el enlace, se ejecuta el código de inicialización. Los clics posteriores no necesitan hacer ningún procesamiento. El problema aquí es cuando las personas hacen doble clic en el enlace, el código de inicialización se ejecuta dos veces -aunque estoy configurando un indicador de inmediato para decir que estoy inicializado, y si está marcado no ejecuto la función de inicio. ¿Que debería hacer?Personas que hacen doble clic en todo en las páginas web ... jQuery doble clic en el problema

  • que podía desatar la función, haga clic en este enlace cuando se hace clic, pero luego me necesitan de obligar a la función de nuevo cuando se cierra el cuadro de diálogo .
  • Podría vincularme al evento dblclick y devolver un mensaje falso?
  • Pude guardar la hora 'lastclicked' en el elemento, y luego verificar si decir ha transcurrido 2 segundos antes de que se active el evento ?
+2

No se puede simplemente enlazar con el dblclick así? No puedo ver por qué eso no funcionaría. –

+0

Problema con la vinculación a dblclick es que si el usuario hace doble clic y devuelvo falso - el diálogo no se abrirá y el usuario se quedará en blanco si este enlace no funciona :) Creo que podría esperar un par de milisegundos y luego activar el clic función manualmente? – superlogical

Respuesta

5

Yo uso Ben Nadel's jQuery ajax wrapper. Cada vez que creas una solicitud ajax, puedes darle un nombre opcionalmente. El contenedor ajax rastrea todas las solicitudes con nombre y descarta cualquier duplicado si aún está esperando una respuesta de una solicitud anterior con el mismo nombre.

Al poner todas sus llamadas ajax a través de esta "canalización", tiene un gran control centralizado sobre el manejo de cada llamada.

+0

Hola, womp, gracias por la información. Esto es algo con lo que he luchado un poco :) ¡Lo comprobaré! – superlogical

0

Hice un complemento para extender el método jquery ajax y agregar un indicador de singleton, con un indicador de bloqueo adicional para decirle a ajax que ignore todas las llamadas siguientes usando esta url (o clave).

Usted llama Ajax normalmente con EXTRA {Singleton: verdad, el bloqueo: true} opciones

Cuando se llama a la misma ajax doble de la segunda llamada no se dispara si la primera llamada todavía está procesando. V práctica hasta el momento:

http://github.com/dougle/jQuery-Ajax-Singleton

+0

Supongo que tendría que probarlo :) Mi problema en realidad no tiene nada que ver con ajax, está haciendo un montón de cosas del widget YUI, lo cual es muy costoso. Así que, sí, envolver las cosas de jQuery ajax está bien si estuviera haciendo ajax. Pero en este caso, tiene que ver con un doble clic ... – superlogical

Cuestiones relacionadas