[JAVASCRIPT] problème de petit pop-up redondant :(

problème de petit pop-up redondant :( [JAVASCRIPT] - Programmation

Marsh Posté le 19-04-2002 à 07:51:33    

voici le bout de code :
 
var ie5=(document.getElementById&&navigator.appName.indexOf("Internet
Explorer" )!=-1)
if (ie5){
document.write('<span
style="position:relative;width:110px;height:20px;font:bold 10pt
Verdana;padding:2px" onClick="showhide(1);event.cancelBubble=01" ><span
style="cursor:hand;width:100%">Lien à cliquer</span>';)
document.write('<div id="menu1"
style="position:absolute;left:115;top:0;width:200px;height:100px;border:1px
solid black;background-color:#0A3B8A;visibility:hidden;font:10pt Verdana">';)
}
 
function showhide(state){
var cacheobj=document.getElementById("menu1" ).style
if (state==0)
cacheobj.visibility="hidden"
else
cacheobj.visibility=cacheobj.visibility=="hidden"?
 "visible" : "hidden"
}
 
if (ie5){
document.write('Petit texte';)
}
 
if (ie5){
document.onclick=function(){showhide(0)}
document.write('</div></span>';)
}
 
si je le met dans une cellule, ça marche impec, j'ai mon lien, je clique, ça
m'affiche une fenêtre avec le texte. ok.
 
si j'en met comme ça 2 autres dans le tableau dont les id (balise div) sont
du type menu2, menu3 (menu1 dans cet exemple) et que je le change dans la fonction showhide,  et que
je change le lien et le contenu de la petite fenêtre je me disais que ça
marcherait ! et ben non !!!!
 
si j'ne met 2, les deux liens sont ok, différents et tout, mais la fenêtre
qui s'ouvre est systématiquement la dernière, et ça qu'il y ait 2, 3 ou 4
liens (donc bout de code comme ça) différents....
 
je pige pas, je pensais que l'id suffirait à pas s'emmêler les pinceaux...
sos ??
 
:(

Reply

Marsh Posté le 19-04-2002 à 07:51:33   

Reply

Marsh Posté le 19-04-2002 à 08:06:50    

hello,  
ben je dirais que ce qui chie c'est ca :
 
var cacheobj=document.getElementById("menu1" ).style
 
 
c'est le menu1 qui fait chier....  
 
A ta place j'essaierais ceci :
 
showhide(1, 'menu1';);
 
 
et la fonction :
 
function showhide(state, steta){  
var cacheobj=document.getElementById(steta).style  
if (state==0)  
cacheobj.visibility="hidden"  
else  
cacheobj.visibility=cacheobj.visibility=="hidden"?
"visible" : "hidden"  
}  
 
 
faut bidouiller un peu... mais ce que je veux dire c'est plutot que de reecrire trois fois la meme sous routine, autant passer tout en parametre...
 
@+
cadou

Reply

Marsh Posté le 19-04-2002 à 08:11:46    

oui j'ai essayé de bricoler ce truc pour en faire une fonction... mais j'y suis pas arrivé alors j'ai fait comme ça :((
 
ça vient du site http://www.g1script.com/home/LANGA [...] TION/8.php
 
qui permet normalement de faire un menu et j'ai essayé de le détourner pour en faire un genre de boite de dialog informative dans un sommaire....
 
je vais essayer, merci :)

Reply

Marsh Posté le 19-04-2002 à 10:13:29    

bon ben ça marche... mais j'ai encore une question :)
 
à la fin, j'ai ça :
 
if (ie5){  
document.onclick=function(){showhide(0, 'menu1';)}  
document.write('</div></span>';)  
}  
 
si je rajoute ça avant le document.write dans mes 3 codes, en modifiant le menu1 évidemment :
document.onmouseout=function(){showhide(0, 'menu1';)}
 
ça ne marche, une fois de plus que sur le dernier des 3, ou des 2 si je n'en met que 2....
 
une idée ??? paske pour l'instant quand je clique sur un menu, ça ouvre le pop-up sans fermer les autres....

Reply

Marsh Posté le 19-04-2002 à 15:09:26    

showhide(1, 'menu1';);
 
essaie de bouger les numeros... j'ai pas trop le temps de tester là...
mais a mon avis, faut que tu trouve la logique....
Si tu en as trois les trois :
showhide(1, 'menu1';);  
 
doivent être differents....
showhide(0, 'menu1';);  
showhide(1, 'menu2';);  
showhide(2, 'menu3';);
 
voili voilou...
 
@+
cadou

Reply

Marsh Posté le 19-04-2002 à 17:25:56    

bé non, 0 ou 1 correspond à un état, affiché ou caché.... c'est pas logique...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed