2009-08-01 4 views
0

Lorsque l'utilisateur double involontairement des clics sur les lignes ou les ancres du tableau dans l'exemple ci-dessous en utilisant Firefox, l'effet de croissance est arrêté et la page devient inutilisable. Des suggestions sur la façon de forcer FF à ignorer les doubles-clics? J'ai essayé d'utiliser Stop.event de Prototype et cela n'a pas semblé aider.Suppression d'un double clic à l'aide de Script.aculo.us

<table border=1> 
<tr onclick="Effect.Grow('floater');"> 
    <td>Some Text</td> 
    <td><a href="#" onclick = "Effect.Grow('floater');return false;">1</a></td> 
    <td><a href="#" onclick = "Effect.Grow('floater');return false;">2</a></td> 
</tr> 

</table> 

<div id = "floater" style="display:none;width:100%;height:100%;background-color:red"> 
<a href="#" onClick="Effect.Shrink('floater');return false;">close floater</a><div> 

Répondre

2

Le problème est que script.aculo.us ou Prototype gère le double-clic comme un clic normal, ce qui déclenche l'effet Grow une seconde fois et détruit le positionnement de l'élément. Avec un simple patch (voir ci-dessous) de scriptaculous.js (1.8.2), je l'ai travaillé, mais il est plus d'un rapide et sale solution pour votre problème spécifique:

760,763d759 
< if(element.growing){ 
< return; 
< } 
< element.growing=true; 
829d824 
<    element.growing=false; 
+0

Merci beaucoup pour cette réponse. J'ai des problèmes cependant, et je pense que c'est parce que je suis trop ignorant pour lire correctement ces numéros de ligne dans le patch. Est-ce que "829d824" signifie ajouter à 829 ou 824 ou quoi? Encore une fois, je l'apprécie vraiment. – Judson

+0

Regardez Wikipedia pour une expmanation de diff: http://en.wikipedia.org/wiki/Diff – kanngard

0

Je ne l'ai pas utilisé script.aculo.us, donc je ne peux pas aider avec le code réel, mais il devrait être assez simple à faire ce qui suit. Lorsque onClick est déclenché, vous devez supprimer l'événement de l'ancre avant de commencer le rétrécissement. Une fois cet effet terminé, vous rajoutez l'événement à l'ancre.

+0

Merci. Cependant, je n'ai rien trouvé dans Prototype pour le faire. Il y a beaucoup de façons de supprimer des objets du DOM, etc, mais pas les événements (au moins que je peux trouver). – Judson

Questions connexes