Page 1 sur 1

Faire apparaitre et disparaitre des éléments - IE m'énerve !

Posté : 09 oct. 2006, 10:34
par zepretender
Bonjour,

Je souhaite faire un script simplissime :

En cliquant sur un lien, on fait apparaitre une balise DIV.

Pour cela je fais un lien "cliquez ici" avec

Code : Tout sélectionner

<a href="#" onClick="javascript:aff('1');">Cliquez ici</a>
La fonction aff() est la suivante :

Code : Tout sélectionner

function aff(id){ pasmoi = document.getElementById("pasmoi"); if (id == "1") { pasmoi.style.display = ""; } else { pasmoi.style.display = "none"; } }
Malheureusement, il y a des erreurs avec IE alors que Firefox n'a aucun souci. Que faire ? Merci

Posté : 09 oct. 2006, 13:34
par starkeus
Bon j'imagine que ta balise a bien un id 1? :)
Ensuite essaie en donnant une valeur au display: block ou inline, au lieu de ne rien mettre.

Reponse

Posté : 09 oct. 2006, 16:17
par younes475
voici un scipt realsé par ajax,
je pense que tu dois mettre , visible et hidden

Code : Tout sélectionner

<script> var saveHeight; var showing = true; function toggleSlide() { if ( showing ) { slideMenuUp(); showing = false; } else { slideMenuDown(); showing = true; } } function slideMenuUp() { var menu = $('demosMenu'); saveHeight = menu.offsetHeight; menu.style.overflow = "hidden"; new Rico.Effect.Size( menu, null, 1, 120, 8 ); $('demoPanelLink').innerHTML = "Show demo panel"; } function slideMenuDown() { var menu = $('demosMenu'); new Rico.Effect.Size( menu, null, saveHeight, 120, 8, {complete:function() { $(menu).style.overflow = "visible"; }} ); $('demoPanelLink').innerHTML = "Hide demo panel"; } </script>
bon courage

Re: Faire apparaitre et disparaitre des éléments - IE m'éner

Posté : 09 oct. 2006, 17:50
par Truc
Supprime le "javascript" de l'événement onclick...

Code : Tout sélectionner

<a href="#" onclick="aff('1');">Cliquez ici</a>
tu peux éventuellement le placer la même chose mais dans l'attribut "href" :

Code : Tout sélectionner

<a href="javascript:aff('1');" >Cliquez ici</a>

Posté : 09 oct. 2006, 23:10
par albat
Et avec ceci ?...

Code : Tout sélectionner

function aff(id) { isIE = (document.all); isNN6 = (!isIE) && (document.getElementById); if (isIE) pasmoi = document.all['pasmoi']; if (isNN6) pasmoi = document.getElementById("pasmoi"); pasmoi.style.display = (id==1) ? "block" : "none"; // pas de "" autour du 1 et un p'tit opérateur ternaire en prime ! }

Posté : 10 oct. 2006, 08:53
par zepretender
Bonjour,

Rien ne fonctionne... IE merdoit toujours autant !

J'ai essayé le dernier script proposé par Albat mais ça ne marche pas sous Firefox ni sur IE.

"cet objet ne gère pas cet objet ou cette méthode"

J'ai viré les "javascript" dans mon code "onclick"... Rien à faire non plus.

Le javascript, je n'y comprends vraiment rien mais il me faut absolument réussir ça...

Merci pour votre aide !

Posté : 10 oct. 2006, 09:04
par starkeus
Essaie de nous donner un code plus complet.
Aussi j'ai remarqué qu'IE aime bien que l'on déclare ses variables:

Code : Tout sélectionner

var taVariable
Ton code qui fonctionne maintenant:

Code : Tout sélectionner

<html> <head> <style> </style> <script> function aff(id){ var pasmoi = document.getElementById("pasmoi"); if (id == "1") { pasmoi.style.display = "block"; } else { pasmoi.style.display = "none"; } } </script> </head> <body> <a href="#" onClick="javascript:aff('1');">Cliquez ici</a> <div id="pasmoi" style="background-color: #f00;display: none;">CA MARCHE ! </div> </body> </html>

Posté : 10 oct. 2006, 09:23
par zeus
J'ai essayé le dernier script proposé par Albat mais ça ne marche pas sous Firefox ni sur IE.
J'espère que tu as compris qu'il fallait remplacer les "pasmoi" par les identifiants de ton site :roll:

J'ai travaillé avec Albat sur ce code hier soir et je peut t'assurer qu'il fonctionne. Sur FF comme sur IE ;)

le copier/coller de code ne mene jamais bien loin [-(

Posté : 10 oct. 2006, 17:19
par albat
J'ai essayé le dernier script proposé par Albat mais ça ne marche pas sous Firefox ni sur IE.
Qu'ouis-je ? :afraid:

Y a quelqu'un qui prétendrait qu'un script
écrit par mézigue et débuggé par zeus ne marche pas ??? :shock: :evil:
Quitte tes lunettes et approche... :axe: :lol:

Je confirme que ce script fonctionne parfaitement.
(Il est d'ailleurs en ligne sur l'un de mes sites.)

Mais comme te l'a rappelé zeus,
il ne fonctionnera que si tu l'as adapté comme il faut.

Il te faut donc vérifier que l'objet
que tu veux faire apparaître/disparaître est bien nommé "pasmoi" :

Code : Tout sélectionner

<div id="pasmoi"> ... </div>
ou changer le paramètre "pasmoi" dans ta fonction javascript :

Code : Tout sélectionner

if (isIE) letruc = document.all['machin']; if (isNN6) letruc = document.getElementById("machin"); letruc.style.display = (id==1) ? "block" : "none";

Posté : 10 oct. 2006, 19:27
par stevelace

Code : Tout sélectionner

<script language="javascript" type="text/javascript"> function galleryShow(GalId){ if (document.getElementById){ curElement = document.getElementById(GalId); } else if (document.all){ curElement = document.all[GalId]; } if(curElement.style.display == 'block'){ curElement.style.display = 'none'; } else if(curElement.style.display == 'none' || curElement.style.display == ''){ curElement.style.display = 'block'; } } </script>