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 :

jwerty : lier un évènement à un élément ajouté dynamiquement avec jQuery [Plugin]


Sujet :

jQuery

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 5
    Points
    5
    Par défaut jwerty : lier un évènement à un élément ajouté dynamiquement avec jQuery
    Bonjour,
    tout est dans le titre. J'ai un problème avec le plugin jwerty (qui permet de gérer les raccourcis claviers : http://keithcirkel.co.uk/jwerty/). Je l'utilise de cette façon dans mon code :
    (quand je presse la touche "entrer", j'ajoute au DOM une nouvelle zone de texte avec insertAfter et je lui donne le focus)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    jwerty.key('return',function(e){
    	e.preventDefault();
    	newParag.insertAfter($(e.target).parent().parent());
    	$(e.target).parent().parent().next('.zone').children().children().focus();
    },this,'.text');
    Ce code fonctionne bien, mais lorsque j'appui sur "entrer" dans cette nouvelle zone de texte, rien ne se passe. Jwerty utilise la méthode bind() alors que j'aurai besoin de on() je pense. Comment faire ?

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    Si j'en crois la documentation, ce n'est pas un plugin jQuery mais un "framewok js" compatible avec jQuery, et l'on devrait pouvoir écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $( "body" ).on( "keydown", "votre sélecteur", 
        jwerty.event( 'return', function(){
            // votre code
        })
    );
    Comme vous n'avez pas donné votre code, je ne connais pas la valeur qui doit remplacer "votre sélecteur".

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    merci beaucoup. C'est exactement ça

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    je n'ai pas pensé à une chose : comment faire si je veux ajouter d'autres évenements clavier dans ce code, avec jwerty ?

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Il peut y avoir plus d'un on() chacun traitant un sélecteur différent et des événements keydown différents.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $( "body" ).on( "keydown", "#monInputID", 
        jwerty.event( 'enter', function(){
            // votre code
        }) // attention pas de point-virgule ici
    );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $( "body" ).on( "keydown", "#maDivID", 
        jwerty.event( 'ctrl+shift+p', function(){
            // votre code
        }) // attention pas de point-virgule ici
    );
    Il peut y avoir un on() qui applique le même traitement (votre code) pour le même événement keydown à plusieurs éléments du DOM.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $( "body" ).on( "keydown", "body, #div1ID, #span1ID", 
        jwerty.event( 'ctrl+shift+[0-9]', function(){
            // votre code
        }) // attention pas de point-virgule ici
    );
    Si votre code à besoin de traiter l'événement, il faut écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $( "body" ).on( "keydown", ".maClasse", 
        jwerty.event( 'ctrl+alt+z', function( e ){
            // votre code, exemple
            console.log( e.pageX, e.pageY );
        }) // attention pas de point-virgule ici
    );
    Je vous conseille la lecture du fichier README

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    merci pour toutes ces informations. J'avais déjà lu les fichiers d'aide, mais comme je débute en jquery, je n'avais pas tout compris.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [TinyMCE] Activation sur nouveaux éléments ajoutés dynamiquement
    Par Recif dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 11/06/2013, 14h08
  2. Suppression d'un élément ajouté dynamiquement
    Par flapy dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2011, 14h23
  3. Positionnement d'un élément ajouté dynamiquement
    Par katoyi dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 22/08/2010, 00h10
  4. Réponses: 4
    Dernier message: 30/07/2010, 09h27
  5. Réponses: 5
    Dernier message: 05/09/2008, 17h17

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