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 :

Gestionnaire d’événement avec la méthode replaceWith


Sujet :

jQuery

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Juillet 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Gestionnaire d’événement avec la méthode replaceWith
    Bonjour à tous,

    Toujours débutant en jQuery,
    je construis une appli web pour modifier les éléments d'un tableau à la volée.
    Je clique sur une cellule (td > span.to_edit) pour la changer en input.
    Quand je clique sur une autre cellule, ça retransforme les autres input en span.
    Tout fonctionne sauf que je ne peux plus re-cliquer sur un span qui a déjà été édité, alors qu'en html, tout semble ok.

    Voici le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (function(){
    	$(".to_edit").click(function() {
    		$('td input[type=text]').not(this).each(function() {
    			$(this).replaceWith('<span class="to_edit" name="'+$(this).attr('name')+'">'+$(this).val()+'</span>');
    		})
    		$(this).replaceWith('<input type="text" name="'+$(this).attr('name')+'" value="'+$(this).text()+'" />');
    	})
    });
    Merci de votre aide

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 396
    Points : 4 825
    Points
    4 825
    Par défaut
    Bonjour,

    Citation Envoyé par mr_ersatz Voir le message
    ...
    Tout fonctionne sauf que je ne peux plus re-cliquer sur un span qui a déjà été édité, alors qu'en html, tout semble ok.
    C'est parce que vous n'attachez pas l'événement clic aux éléments .to_edit par délégation, essayez comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#idParent ou .classParent").on("click",".to_edit",function() {
    /*votre code ici*/
    });

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ergonome
    Inscrit en
    Juillet 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ergonome
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Impeccable, merci Toufik83 !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/08/2015, 12h44
  2. [POO][Gestionnaire d'événement déclaré comme méthode d'une classe]
    Par Théolude dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 30/07/2009, 13h06
  3. Problème avec la méthode pack()
    Par tomca dans le forum Langage
    Réponses: 5
    Dernier message: 15/09/2005, 11h58
  4. [Wscript] probleme avec la méthode send
    Par machinTruc dans le forum Windows
    Réponses: 8
    Dernier message: 18/05/2005, 18h30
  5. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 15h26

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