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 :

saut de ligne<tr> aleatoire et text qui se deplace seul


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut saut de ligne<tr> aleatoire et text qui se deplace seul
    Bonjour,
    mon probleme ici c'est que le code ci apres marche de maniere etrange, en faite
    j'ai un boutton '+' qui doit si on clique dessus afficher 10lignes. mon problemes c'est que sous Firefox j'ai deux problemes:
    1/ fire fox m'affiche de maniere aleatoire des 2 4 7 ou 10lignes. au lieu de 10lignes
    2/ au fure et a messure qu'on clique sur "+" les lignes afficher le sont de plus en plus bas par rapport a la premiere lignes.

    avec konqueror j'ai que le probleme 2
    avec IE aucun. je suppose donc que la methode que j'utilise n'est pas portable. voici mon code:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
       $html="";
     
       for($i=0;$i<10;$i++)
    	{
    		$html.="<tr style='display:none;' id='sub".$i."'><td>this is the ".($i+1)."line </td><td>online</td></tr>
    		";
    	}  
     
     
    ?>
     
    <html>
    <head>
    <title>nothing special</title>
    	<script language="javascript">
    		function displaysub(src,s)
    			{
    				if(src.value=='+')
    				{
    					var i=0;
    					while(document.getElementById(s+i)!=null)
    					{
    						document.getElementById(s+i).style.display='inline';
    						i++;
    					}
    					src.value='-';
    				}
    				else
    				{
    					var i=0;
    					while(document.getElementById(s+i)!=null)
    					{
    						document.getElementById(s+i).style.display='none';
    						i++;
    					}
    					src.value='+';
    				}
     
     
    			}
    	</script>
     
    </head>
     
    <body> 
     
        <table>
    		<tr onclick="displaysub(this.cells[0].firstChild,'sub');">
    			<td><input type="button" value="+" style="border:0px;"/></td>
    			<td>click to sub menu</td>
    		</tr>
    	   <?php
                            echo $html;
               ?>
    		<tr>
    			<td> &nbsp </td>
    			<td>it is ok</td>
    		</tr>
    	</table>
    </body>
     
    </html>
    et quand je fais afficher le code source de la page je vois bien:
    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
    <body> 
     
        <table>
    		<tr onclick="displaysub(this.cells[0].firstChild,'sub');">
    			<td><input type="button" value="+" style="border:0px;"/></td>
     
    			<td>click to sub menu</td>
    		</tr>
    	   <tr style='display:none;' id='sub0'><td>this is the 1line </td><td>online</td></tr>
    		<tr style='display:none;' id='sub1'><td>this is the 2line </td><td>online</td></tr>
    		<tr style='display:none;' id='sub2'><td>this is the 3line </td><td>online</td></tr>
     
    		<tr style='display:none;' id='sub3'><td>this is the 4line </td><td>online</td></tr>
    		<tr style='display:none;' id='sub4'><td>this is the 5line </td><td>online</td></tr>
    		<tr style='display:none;' id='sub5'><td>this is the 6line </td><td>online</td></tr>
    		<tr style='display:none;' id='sub6'><td>this is the 7line </td><td>online</td></tr>
    		<tr style='display:none;' id='sub7'><td>this is the 8line </td><td>online</td></tr>
     
    		<tr style='display:none;' id='sub8'><td>this is the 9line </td><td>online</td></tr>
    		<tr style='display:none;' id='sub9'><td>this is the 10line </td><td>online</td></tr>
    				<tr>
    			<td> &nbsp </td>
    			<td>it is ok</td>
     
    		</tr>
    	</table>
    </body>
    donc je ne comprend pas pourquoi j'ai pas 10lignes sous firefox et pourquoi le texte s'eloigne de plus en plus de la premiere ligne quand j'appuis sur '+'

    Merci de jetter un coup d'oeil, merci

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.cells[0].firstChild
    L'interprétation du DOM est différente entre IE et FF (http://javascript.developpez.com/faq...M#DOMIEFirefox).
    Tu peux cependant récupérer directement ton input :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr onclick="displaysub(this.getElementsByTagName('input')[0],'sub');">
    Mais l'idéal serait de donner un id à ton input et de le récupérer via getElementById.
    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
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    et puis le style "inline" n'est pas interprété de la même manière sous IE et FF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById(s+i).style.display='inline';
    remplace le par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById(s+i).style.display='';
    la valeur par défaut sera appliquée sur l'élément en question.
    D'ailleurs si le getElementById() s'applique sur des TR ce n'est pas inline qu'il faut appliquer mais table-row.
    cf. : http://www.w3schools.com/css/pr_class_display.asp
    et tu pourras constater que les modes display ne sont pas toujours bien interprétés :
    http://www.quirksmode.org/css/display.html

    spécifications W3C : http://www.w3.org/TR/CSS2/visuren.html#display-prop

  4. #4
    Membre extrêmement actif
    Avatar de lilington
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2005
    Messages
    681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 681
    Par défaut
    Merci c'est specialement gentil toutes ces explications.
    j'en avais vraiment besoin. je jette un coup d'oeil sur vos lien
    le display='' a regler le probleme.
    en ce qui concerne le getElement je vais essayer de suivre cette route plutot que ce que je faisais.
    encore merci.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/08/2014, 12h38
  2. Saut de ligne sans <br/>
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 11h21
  3. Nombre de sauts de ligne dans un String
    Par Johnbob dans le forum ASP
    Réponses: 7
    Dernier message: 03/03/2004, 15h33
  4. Lecture de saut de ligne...
    Par Garion dans le forum C
    Réponses: 5
    Dernier message: 13/02/2004, 11h42
  5. [JTextPane] saut de ligne...
    Par neric dans le forum Composants
    Réponses: 2
    Dernier message: 21/01/2004, 15h01

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