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

JavaScript Discussion :

effacer un text en un click dans une <span> ?


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut effacer un text en un click dans une <span> ?
    bonjour/bonsoir,

    j'ai trouvé un super script qui me permet d'afficher un texte de maniere progressive et de là j'ai créer la fonction pour déclencher le tout avec plusieurs boutons avec effet type onmousedown, onmouseup et onmouseclick.

    bon le tout fonctionne très bien sauf qu'au moment du deuxieme clic evidement...il me cumule les textes

    d'apres vous je dois utiliser quel moyen ? removechild ?

    Ps: le texte est dans une <span> placé en CSS sur une image.

    D'avance merci

  2. #2
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut effacer un text avec "onclick"
    salut,

    mon code me permet d'afficher un texte de manière dynamique mais je n'arrive pas à l'effacer en début de fonction pour ne pas qu'ils se superposent bouton après bouton, un conseil peut être ?

    HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><img class="imageflottante" src="images/on.png" alt="Image flottante" onmouseup="this.src='images/on.png';" onmousedown="this.src='images/off.png';" onclick='test()';" /></p>
    Et ensuite le Javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function test()
    		{
    			var txt = 'alors une reponse peut etre ?',
    				display = document.getElementById('display');
     
    				for(var i = 0, l = txt.length; i < l; i++) {
    					(function(i) {
    						setTimeout(function() {
    							display.innerHTML += txt.charAt(i);
    						}, i * 10);
    					}(i));
    				}
    		}
    j'ai beau avoir essayé ce code là rien ne se passe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function effacer() {
     var nombre_signew = document.getElementsByTagName("p")[0].firstChild.nodeValue.length;
     document.getElementsByTagName("p")[0].firstChild.deleteData(0,nombre_signes);
    }
    Je prend n'importe lequel de vos conseils merci

  3. #3
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Lorsque vous récupérez le span, vous pouvez directement le vider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var txt = 'alors une reponse peut etre ?'; //Vous aviez mis une virgule
    display = document.getElementById('display');
    display.innerHTML = "";
    				
    for(var i = 0, l = txt.length; i < l; i++) {

  4. #4
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut Merci beaucoup Vermine :)
    ton code efface bien tout ce qui est marqué mais n'arrête pas la progression du texte ce qui a pour effet de cumuler tous les textes de tous les boutons si j'appuie dessus les uns après les autres rapidement.

    si tu as la réponse se serait vraiment bien sinon un grand merci quand même pour ton aide

    voilà un test mis en place pour mieux comprendre: http://nicoweb.dixkey.com/lol/

  5. #5
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    J'ai essayé de fermer le timer mais ça ne fonctionne pas. Par contre, j'ai vu ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var txt = 'alors une reponse peut etre ?',
    display = document.getElementById('display');
    Donc avec l'erreur, ça fonctionne. Il faut un point-virgule et non une virgule. Par contre avec le point-virgule on se rend compte que vous avez choisit un mauvais nom de variable (que vous n'avez pas déclaré, d'ailleurs):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var txt = 'alors une reponse peut etre ?';
    display = document.getElementById('display');
    Ceci serait mieux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var txt = 'alors une reponse peut etre ?';
    var mon_span = document.getElementById('mon_span');
    Mais ça ne règle pas le problème.

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Ce qu'il y a en fait, c'est que vous lancez "i" fonctions au lieu de lancer "i" fois la fonction. J'ai donc voulu mettre le timer en variable globale et faire clearTimeout mais... ça n'a rien changé.

  7. #7
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut merci de ta reponse
    je sais qu'en As3 c'est bien plus simple il suffit de mettre un mini script d'une ligne qui dit 'stop' et l'action s'arrête automatiquement mais en JavaScript je ne m'y connais pas. Bref j'ai mis un lien pour mieux comprendre et avoir les sources au complet ici, je continu a chercher...

  8. #8
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Je vous propose un setInterval qui lancera la fonction tout les x temps et qu'on peut stopper facilement:

    Code js : 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
     
    var i = 0;
    var mon_span = document.getElementById('mon_span');
    var mon_timer;
    var txt = 'alors une reponse peut etre ?';
     
    function test()
    {
          i = 0;
          clearInterval(mon_timer);
          mon_span.innerHTML = "";
     
          mon_timer = setInterval(ma_fonction, 100);
     
    }
     
    function ma_fonction()
    {
       if(i < txt.length)
       {
             mon_span.innerHTML += txt.charAt(i++);
       }
       else
       {
             i = 0;
             clearInterval(mon_timer);
       }
    }

    Avec le html suivant:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <span id="mon_span"></span>
     
    <p><img class="imageflottante" src="images/on.png" alt="Image flottante" onmouseup="this.src='images/on.png';" onmousedown="this.src='images/off.png';" onclick='test()';" /></p>

  9. #9
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut Merci beaucoup Vermine :)
    mais j'ai beau essayer je n'arrive pas a le faire fonctionner, je continu à essayer et si tu veux tu peux le telecharger le site ici, merci encore pour tes conseils

    si tu devais ne pas le telecharger je comprendrai et quand meme un grand merci pour ton aide

  10. #10
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Je n'ai malheureusement pas accès à cet hébergeur. Firewall...

  11. #11
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut
    bha c'est free ?? ftp gratuit ? http://dl.free.fr/

    et l'adresse de telechargement est: http://dl.free.fr/vNVcllY4q

    le tout securisé par nod32

    pas grave au pire, merci quand meme pour ton coup de main

  12. #12
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut si tu preferes je peux te donner les acces ftp :)
    je viens de te les envoyer par MP si tu veux

  13. #13
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut je vous met ici le code complet
    pour le html:

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
    		<title>TEST</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<link rel="stylesheet" media="screen" type="text/css" title="css" href="css.css" />
    		<script type="text/javascript" src="script.js"></script>
     
       </head>
       <body>
     
    		<div class="fond">
     
    			<p><img class="fond" src="images/fond.png" alt="fond" /></p>
    			<p><img class="imageflottante" src="images/acheter_on.png" alt="Image flottante" onmouseup="this.src='images/acheter_on.png';" onmousedown="this.src='images/acheter_off.png';" onclick='test()';" /></p>
    			<p><img class="imageflottante2" src="images/vendre_on.png" alt="Image flottante" onmouseup="this.src='images/vendre_on.png';" onmousedown="this.src='images/vendre_off.png';" onclick='test2()';" /></p>
    			<p><img class="imageflottante3" src="images/contact_on.png" alt="Image flottante" onmouseup="this.src='images/contact_on.png';" onmousedown="this.src='images/contact_off.png';" onclick='test3()';" /></p>
    			<p><span id="mon_span" class="texte"></span></p>
     
    		</div>
     
     
       </body>
    </html>
    pour le javascript:
    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
    var i = 0;
    var mon_span = document.getElementById('mon_span');
    var mon_timer;
    var txt = 'alors une reponse peut etre ?';
     
    function test()
    {
          i = 0;
          clearInterval(mon_timer);
          mon_span.innerHTML = "";
     
          mon_timer = setInterval(ma_fonction, 100);
     
    }
     
    function ma_fonction()
    {
       if(i < txt.length)
       {
             mon_span.innerHTML += txt.charAt(i++);
       }
       else
       {
             i = 0;
             clearInterval(mon_timer);
       }
    }
    bin là vous avez tout mon petit site (avec tous les petits soucis )

    et pour rappel le resultat est là: http://nicoweb.dixkey.com/lol/

  14. #14
    Membre confirmé Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Par défaut
    c'est bon j'ai réussi !!!!!!!!!!!

    apparement les variables etaient definis sans attendre que la page soit chargé un petit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    window.onload = function() {
        mon_span = document.getElementById('mon_span');
    };
    et hop dans la poche !!!
    trop bien ))) merci encore pour ton aide

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

Discussions similaires

  1. Lire un fichier Texte d'1 bloc dans une chaine
    Par User dans le forum Langage
    Réponses: 6
    Dernier message: 13/09/2006, 21h56
  2. Texte sur plusieurs lignes dans une cellule de JTable
    Par JeanECN dans le forum Composants
    Réponses: 3
    Dernier message: 10/04/2006, 17h20
  3. [VB.NET] Click dans une Datagrid
    Par YLF dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/03/2006, 15h55
  4. [vb.net] double click dans une datagrid
    Par bguihal dans le forum VB.NET
    Réponses: 6
    Dernier message: 15/12/2005, 17h18
  5. Envoie d'un formulaire lors d'un click dans une listBox
    Par MicheMTP13 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/10/2005, 17h34

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