IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

UI Draggable, comment annuler l'action avec la touche « escape » ?


Sujet :

jQuery

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut UI Draggable, comment annuler l'action avec la touche « escape » ?
    Bonjour à tous !
    J'ai besoin d'un ptit coup de main sur JQuery UI.

    Voila je suis en train de faire un appli avec des div DROPPABLE et d'autres DIV Draggable.
    Je souhaites lorsque l'on déplace un DIV (donc DRAGGABLE), pouvoir annuler l'action sur la touche ESC.

    Voici le code du DIV DRAGGABLE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            $j("#" + numero).draggable({
                    cursor: 'crosshair',
                    opacity: 0.8,
                    drag: function(event, ui) {
                        $j(this).keydown(function(event) {
                            if (event.keyCode == 27) {
                                $j("#" + numero).stop();
     
                            }
                        });
                      }
                });
    le stop ne fonctionne pas, j'arrive à détecter la touche ESC pendant le déplacement du DIV, je souhaite qu'elle se repositionne et annule l'action en cours.

    Merci pour votre aide.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 205
    Points : 285
    Points
    285
    Par défaut Pour qu'un
    évènement keydown ou keypress sot intercepté il faut que l'élément est le focus. Grosso modo ces évènements sont utilisées par exemple sur des champs input de type text ou les textarea.

    Je vais regarder mais je ne crois pas que cela marche sur d'autres éléments comme une div. Concernant le retour de ta div a sa position initial , tu peux utiliser la fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $j("#" + numero).draggable('option', 'revert', true);
    Mais une fois le retour fait il ne faut oublier de passer l'option a false.

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    ok cela ne semble pas fonctionner....

    Mais j'ai peut être trouvé une solution intermédiaire

    Je rajoute un attr au DIV :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
                    $j("#" + numero).draggable({
                        cursor: 'crosshair',
                        opacity: 0.8,
                        start: function(event, ui) {
                            $j("#" + numero).attr("actiondrag", "0");
                        },
                        drag: function(event, ui) {
                            $j(this).keydown(function(event) {
                                if (event.keyCode == 27) {
                                    $j("#" + numero).attr("actiondrag", "1");
                                    $j("#" + numero).draggable('option', 'revert', true);
                                }
                            });
                        }
                    });
    Ensuite dans le droppable je test si l'attr est bien = 0, et il ne se passe rien.
    Cela semble fonctionner comme ca.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 233
    Points : 107
    Points
    107
    Par défaut
    Réglé ??

    Sinon je suis retombé sur un exemple de réinitialisation d'une DIV draggable :

    http://jqueryui.com/demos/droppable/#revert

    l'evenement de reset se produit sur un mouseUp je pense pas que cela soit très difficile de l'associer a la touche escape.

Discussions similaires

  1. Comment annuler la fermeture avec la croix ?
    Par Nico128 dans le forum WinDev
    Réponses: 2
    Dernier message: 02/03/2008, 11h36
  2. Vb2005 comment annuler une action
    Par Herlece dans le forum Windows Forms
    Réponses: 18
    Dernier message: 16/01/2008, 13h27
  3. Réponses: 25
    Dernier message: 30/09/2007, 10h13
  4. [JTextField] Déclencher une action avec la touche ENTER
    Par tchoukapi dans le forum Composants
    Réponses: 10
    Dernier message: 19/09/2005, 14h37
  5. [c#] comment annuler l'action d'un requireValidator
    Par shams dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/07/2005, 12h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo