Javascript multi texte
Fermé
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
-
24 sept. 2013 à 10:06
Profil bloqué - 27 sept. 2013 à 11:52
Profil bloqué - 27 sept. 2013 à 11:52
A voir également:
- Javascript multi texte
- Excel cellule couleur si condition texte - Guide
- Telecharger javascript - Télécharger - Langages
- Transcription audio en texte word gratuit - Guide
- Javascript round ✓ - Forum Javascript
- Si cellule contient texte alors ✓ - Forum Excel
5 réponses
Que fait ta fonction ChangeMessage() exactement ?
Ton code présente une erreur de syntaxe, le point virgule :
mais plutôt
et dans ce cas, ça signifie simplement que ta fonction ChangeMessage s'attend à recevoir 4 paramètres : 'Texte 1' comme 1er paramètre, 'Desc1' comme second paramètre, 'Texte 2' comme 3e paramètre et 'Desc 2' en dernier.
En javascript, la fonction devrai ressembler à ça :
<script type="text/javascript">
function ChangeMessage(param1,param2,param3,param4){
// je fais quelque chose avec param1
// je fais quelque chose avec param2
// etc....
}
</script>
Ton code présente une erreur de syntaxe, le point virgule :
ChangeMessage('Texte 1','Desc1'; 'Texte 2','Desc2')
mais plutôt
ChangeMessage('Texte 1','Desc1','Texte 2','Desc2')
et dans ce cas, ça signifie simplement que ta fonction ChangeMessage s'attend à recevoir 4 paramètres : 'Texte 1' comme 1er paramètre, 'Desc1' comme second paramètre, 'Texte 2' comme 3e paramètre et 'Desc 2' en dernier.
En javascript, la fonction devrai ressembler à ça :
<script type="text/javascript">
function ChangeMessage(param1,param2,param3,param4){
// je fais quelque chose avec param1
// je fais quelque chose avec param2
// etc....
}
</script>
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
Modifié par Sinistrus le 24/09/2013 à 17:19
Modifié par Sinistrus le 24/09/2013 à 17:19
Merci de ton aide !
Voilà ce que j'ai fais... mais n'est-ce pas long ?
Voilà ce que j'ai fais... mais n'est-ce pas long ?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<Script language="JavaScript">
function Descript1(message,champ){if(document.getElementById) document.getElementById(champ).innerHTML = message;}
function Descript2(message,champ){if(document.getElementById) document.getElementById(champ).innerHTML = message;}
</Script>
</head>
<body>
<div onMouseOver="Descript1('Description 1','Desc1'); Descript2('Description 2','Desc2')" onMouseOut="Descript1('','Desc1'); Descript2('','Desc2')">
Mon image
</div>
A quelque part dans ma page (<span id=Desc1></span>)<br>
A quelque part d'autre dans ma page (<span id=Desc2></span>)<br>
Encore à quelque part d'autre dans ma page (<span id=Desc3></span>)
</body>
</html>
Dans ton cas seule la fonction Descript1 suffit (elle fait la même chose que Descript2 donc tu peux la rappeler autant de fois que tu veux).
Si par la suite tu veut faire un peu de "tunning" optimisé, tu peux faire en sorte que ta fonction se comporte en mode : "tant qu'il y a" !
IE que plutôt que de lui injecter une série de paramètres, tu lui en injectes que 1, et ce paramètre lui contient une série de paramètre, ainsi pour ton exemple, la fonction pourra se dire : tant qu'il y a des éléments HTML à modifier (élements qu'elle va trouver dans le paramètre unique), je fais telle ou telle même chose, ça te permetra de modifie un coup 1 seul élément, puis une autre fois 3 ou 4 éléments à la fois voir plus, et aux événements voulus (mouseover ou mouseout).
Exemple :
Donc en effet ta fonction contient plus de code, mais en gros tu pourra avoir une gestion plus facile et scalable des événements. Je m'explique, voici l'autre partie du code :
Combine les 2 et tu verra ça fonctionne, pour le <div>, son mouseover modifie 2 élements, alors que son mouseout te permet d'en modifier que 1, l'avantage de cette injection unique est que les tableaux javascripts qui sont définis peuvent l'être à une autre endroit et à un autre moment ou même être défini par un autre événement ! et c'est là l'avantage du truc.
En se disant que
et de la même manière
et au final te contenter de n'agir que sur ces tableaux et selon les paramètres que tu veux, ainsi ton <div> se contentera d'injecter ces tableaux modifiés et se comportera comme la fonction Descript1 lui dira de se comporter.
conséquence, l'injection unique :
Genre on chargement de la page, var evenement_au_mouseover vaut telle chose, 5 minutes plutard il vaut telle autre chose, ou bien tu peux charger ton tableau via AJAX, et ainsi controler le comportera onmouseover/onmouseout de 100 <div> différents dans ta page par exemple, tout dans la manipulation de tableau, ce qui est juste puissant..., tu écrit moins de code pour des effets et des animations maitrisées au détail.
A toi de voir ;)
Si par la suite tu veut faire un peu de "tunning" optimisé, tu peux faire en sorte que ta fonction se comporte en mode : "tant qu'il y a" !
IE que plutôt que de lui injecter une série de paramètres, tu lui en injectes que 1, et ce paramètre lui contient une série de paramètre, ainsi pour ton exemple, la fonction pourra se dire : tant qu'il y a des éléments HTML à modifier (élements qu'elle va trouver dans le paramètre unique), je fais telle ou telle même chose, ça te permetra de modifie un coup 1 seul élément, puis une autre fois 3 ou 4 éléments à la fois voir plus, et aux événements voulus (mouseover ou mouseout).
Exemple :
<head>
<Script language="JavaScript">
function Descript1(injection_unique){
// boucle 1 : le fameux "tant qu'il y a des éléments dans le tableau appelé injection_unique"
for (var i in injection_unique){
// on considère chaque élément comme injection (alias)
var injection = injection_unique[i];
// boucle 2 : on sait que chaque élément est composé de 2 éléments ou +
// le 1er sous élément est l'id HTML de l'éménent > injection[0]
// le 2nd sous élément est la valeur que l'on veut donner à cet l'éménent > injection[1]
// on peut aller ainsi sans limite... injection[2], injection[3]
// donc let's go on parcours l'élément en mode : tant qu'il a des sous-éléments
for (var j in injection){
var element_HTML_a_modifier = injection[0]; // on renomme, rien de plus
var nouvelle_valeur_de_lelement = injection[1]; // on renomme, rien de plus
if(document.getElementById){
document.getElementById(element_HTML_a_modifier).innerHTML = nouvelle_valeur_de_lelement;
}
}
}
}
</Script>
</head>
Donc en effet ta fonction contient plus de code, mais en gros tu pourra avoir une gestion plus facile et scalable des événements. Je m'explique, voici l'autre partie du code :
<body>
<div onMouseOver="Descript1([['Desc1','Description 1'],['Desc2','Hello World']])" onMouseOut="Descript1([['Desc2','Description fin']])">
Mon image
</div>
</body>
Combine les 2 et tu verra ça fonctionne, pour le <div>, son mouseover modifie 2 élements, alors que son mouseout te permet d'en modifier que 1, l'avantage de cette injection unique est que les tableaux javascripts qui sont définis peuvent l'être à une autre endroit et à un autre moment ou même être défini par un autre événement ! et c'est là l'avantage du truc.
En se disant que
[['Desc1','Description 1'],['Desc2','Hello World']]est un tableau javascript (défini et écrit à la volée, tu peux difficilement faire plus court), tu peux en faire une variable ! ex :
var evenement_au_mouseover = [['Desc1','Description 1'],['Desc2','Hello World']];
et de la même manière
var evenement_au_mouseout = [['Desc3','texte au mouse out'],['Desc1','Hey changement de valeur']];
et au final te contenter de n'agir que sur ces tableaux et selon les paramètres que tu veux, ainsi ton <div> se contentera d'injecter ces tableaux modifiés et se comportera comme la fonction Descript1 lui dira de se comporter.
conséquence, l'injection unique :
<body>
<div onMouseOver="Descript1(evenement_au_mouseover);" onMouseOut="Descript1(evenement_au_mouseout)">
Mon image
</div>
</body>
Genre on chargement de la page, var evenement_au_mouseover vaut telle chose, 5 minutes plutard il vaut telle autre chose, ou bien tu peux charger ton tableau via AJAX, et ainsi controler le comportera onmouseover/onmouseout de 100 <div> différents dans ta page par exemple, tout dans la manipulation de tableau, ce qui est juste puissant..., tu écrit moins de code pour des effets et des animations maitrisées au détail.
A toi de voir ;)
Sinistrus
Messages postés
1010
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
6 juin 2023
17
25 sept. 2013 à 13:00
25 sept. 2013 à 13:00
Waw ! Tout ca pour moi :'(
Merci enlawded, ton commentaire est très explicite et je ferrai ce que tu dis.
Encore une fois merci pour ta précieuse aide !
Merci enlawded, ton commentaire est très explicite et je ferrai ce que tu dis.
Encore une fois merci pour ta précieuse aide !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question