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 :

élément créé, et sélection


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Par défaut élément créé, et sélection
    Bonjour,
    j'ai un problème avec mon script jQuery.
    Dans ma page html, j'ai plusieurs textareas. Je veux que lorsqu'on appui sur la touche "entrer" dans une de ces zones de texte :
    - une nouvelle zone de texte est ajoutée sous celle qui a le focus
    - la nouvelle zone de texte prend le focus tandis que l'ancienne la perd (j'inclus dans le terme "focus" également le style css qui va avec)
    - la zone de texte qui avait précédemment le focus le perd

    Seulement, une zone de texte ajoutée suite à un appui sur la touche "entrer" ne perd pas le focus quand je clique sur une autre. On dirait que les zones de texte créées ne sont pas sélectionnables avec un sélecteur. Comment faire pour qu'elles le soient ?

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <script>
    			$(function() {
    				var $textarea = $('textarea');				
     
    				function donneFocus(cible){
    					//enleve le focus des textareas
    					$textarea.css('border-left','none');
    					//donne le focus a la textarea cible
    					$(cible).css('border-left','8px solid #64ca5e').focus();
    				}				
     
    				// Evenements souris et clavier
    				$textarea.focusin(function(){
    					donneFocus($(this));
    				});
    				$textarea.keydown(function(event){
    					var keycode = (event.keyCode ? event.keyCode : event.which);
    					if(keycode == '13'){//13 = touche entrer
    						event.preventDefault();//annule le retour à la ligne de l'appui sur 'enter'
    						var new_textarea = $('<textarea class="paragraphe">new apres para</textarea>');
    						$(this).after(new_textarea);
    						donneFocus(new_textarea);
    						$textarea.autosize({append: "\n"});
    					}
    				});
    			});
    		</script>
    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    C'est normal (et déjà traité un nombre incalculable de fois...) aucun événement n'est attaché aux textarea que tu crées.

    Regarde du coté de .on() et en particulier la partie sur les événements délégués !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Par défaut
    merci pour la piste, mais je n'y arrive toujours pas.
    Je lie mes évènements, mais j'obtiens le même résultat. Je ne trouve pas d'exemple ou de cours sur internet qui pourraient m'aider sur ce problème.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    <script>
    			$(function() {
    				var $textarea = $('textarea');				
     
    				function donneFocus(cible){
    					//enleve le focus des textareas
    					$textarea.css('border-left','none');
    					//donne le focus a la textarea cible
    					$(cible).css('border-left','8px solid #64ca5e').focus();
    				}				
     
    				// Evenements souris et clavier
    				$textarea.on("focusin",this,function(){
    					donneFocus($(this));
    				});
    				$textarea.on("keydown",this,function(event){
    					var keycode = (event.keyCode ? event.keyCode : event.which);
    					if(keycode == '13'){//13 = touche entrer
    						event.preventDefault();//annule le retour à la ligne de l'appui sur 'enter'
    						var new_textarea = $('<textarea class="paragraphe">new apres para</textarea>');
    						$(this).after(new_textarea);
    						donneFocus(new_textarea);
    						$textarea.autosize({append: "\n"});
    					}
    				});
    			});
    		</script>

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par sven666
    Je lie mes évènements


    Sur les éléments que tu crées ? Tu es sûr ?
    Citation Envoyé par Bovino
    en particulier la partie sur les événements délégués
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Par défaut
    Je pensais les lier mais ça revenait au même en fait.

    J'ai trouvé un cours Javascript qui parle des évènements délégués.
    J'en arrive à ça, mais ça ne fonctionne toujours pas. Qu'est-ce que je fais de mal ?

    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
     
    $(function() {				
    				$('textarea').autosize({append: "\n"});
     
    				$('textarea').on('focus',$('textarea'),function(){
    					$('textarea').css('border-left','none').css('padding-left','30px');
    					$(this).css('border-left','8px solid #64ca5e').css('padding-left','22px').focus();
    				});
     
    				$('textarea').on('keydown','textarea',function(event){
    					event.preventDefault();
    					$(this).after('<textarea class="paragraphe">new apres titre</textarea>').css('border-left','none').css('padding-left','30px');
    					$(this).next("textarea").css('border-left','8px solid #64ca5e').css('padding-left','22px').focus();
    					$('textarea').autosize({append: "\n"});
    				});
    			});

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut


    .on() !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/03/2013, 18h23
  2. Réponses: 3
    Dernier message: 28/10/2011, 08h56
  3. [XPATH] Sélectionner le n-ième élément d'une sélection
    Par lmfap dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/10/2009, 11h38
  4. Réponses: 1
    Dernier message: 27/11/2008, 14h00

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