Cacher div en javascript

Résolu/Fermé
Signaler
Messages postés
401
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
23 mars 2013
-
 ReDLoG -
Salut à tous
J'ai vu sur un site ( http://www.rcweb.fr/web/javascript.html ) que l'on pouvait masquer des div en javascript mais cela ne fonctionne pas chez moi.
Est-ce parce que je suis en local ?
Ou un problème de code ?
J'ai mis :
<script>
function cacher('lobjet')
{
	document.getElementById('lobjet').style.visibility = 'hidden';
}
</script>
...
 <div id="lobjet">[Merci d'attendre le chargement complet de la page] </div>
...
<input type="button" value="Cacher la div" onclick="cacher(lobjet)">

Quelle est l'erreur ?
Par ailleurs, j'aimerais utiliser la fonction SetTimeOut au chargement de la page.
Je remplacerais alors le bouton "Cacher la Div" par un
<body onload="javascript:setTimeout('cacher('lobjet')',5000)">

Est-ce bien ça ? Ou faut-il remplacer cacher('lobjet') par cacher() ?
Merci
Ciao

4 réponses

Messages postés
781
Date d'inscription
mercredi 4 juillet 2007
Statut
Membre
Dernière intervention
14 septembre 2008
213
<script>
function cacher()
{
	document.getElementById('lobjet').style.display = 'none';
}
</script>
...
 <div id="lobjet">[Merci d'attendre le chargement complet de la page] </div>
...
<input type="button" value="Cacher la div" onclick="cacher()">

<body onload="setTimeout('cacher()',5000)">


1) Dans ton setTimeout du onload, tu as utilisé des ' à l'interieur de ' donc => Bug
2) Tu appelles ta fonction cacher() avec cacher(lobjet) En fesant comme sa, il cherche la variable "lobjet", qui n'existe pas donc => Bug
3) tu utilises cela : function cacher('lobjet'), or, les parametres pour les fonctions sont sans guillement donc cacher(lobjet) et donc => Bug
25
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
401
Date d'inscription
vendredi 29 juin 2007
Statut
Membre
Dernière intervention
23 mars 2013
35
Merci pour ta réponse
Après plusieurs essais, ça a miraculeusement marché !
Pour ce qui est du settimeout, j'ai plus galéré : en fait il ne faut pas le mettre dans body onload mais dans le "script" :

<script>setTimeout('cacher()',5000)</script>

Merci encore
rien n'est jamais miraculeux! Si tu es en serveur local il vaut mieux actualiser la totalité de ton site pour tester la fonction.
Ceci marche très bien pour de l'affichage contextuel:
entre <head> et <head> je défini ma fonction

function affdiv(mdiv,adiv){
document.getElementById(mdiv).style.display="none";
document.getElementById(adiv).style.display="inline";
}

et j'applelle sur onclick (par exemple) onclick="affdiv('div1','div2')";
document.getElementById('ma_div').innerHTML = ""; ==> supprimer tout les composants dans le div

document.getElementById('ma_div').style.visibility = "visible";
==> Cacher le div

document.getElementById('ma_div').style.visibility = "hidden"; ==> Afficher le div
Tu es amoureux ou quoi...?
la propriété visible rend visible le bloc div et hidden cache le bloc div donc :
document.getElementById('ma_div').style.visibility = "visible"; // Afficher le bloc div
document.getElementById('ma_div').style.visibility = "hidden"; // Cacher le bloc div