Foros del Web » Programando para Internet » Javascript »

ayuda con menú emergente

Estas en el tema de ayuda con menú emergente en el foro de Javascript en Foros del Web. tengo una web donde trabajo con un script un tanto complicado y tengo un problema... es un menú emergente pero hay submenús dentro de los ...
  #1 (permalink)  
Antiguo 21/01/2011, 18:54
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
ayuda con menú emergente

tengo una web donde trabajo con un script un tanto complicado y tengo un problema... es un menú emergente pero hay submenús dentro de los submenús... el problema es que al desplegarse el tercer submenú se desaparece el segundo nivel... si no me explico bien la página es la siguiente:

http://patologiabmc.webcindario.com


en fin como ven cuando se posan en Patología Genral >> Lab histopatología se abre el otro layer que sólo contiene el link para lecturas... pero es un poco confuso porque el layer anterior desaparece totalmente....

mi script es el siguiente

Código:
var linkset=new Array()
//SPECIFY MENU SETS AND THEIR LINKS. FOLLOW SYNTAX LAID OUT
linkset[0]='<div class="menuitems"><a href="tempatg.htm">Temas</a></div>'
linkset[0]+='<div class="menuitems"><a href="tareasgen.htm">Tareas</a></div>'
linkset[0]+='<div class="menuitems"><a href="archivos/califgen_102(1).pdf">Calificaciones</a></div>' 
linkset[0]+='<div class="menuitems"><a >Programa labs</a></div>'
linkset[0]+='<div class="menuitems"><a >Links</a></div>'
linkset[0]+='<div class="menuitems"><a href="#" onMouseover="showmenu(event,linkset[2])" onMouseout="delayhidemenu()">lab histopatologia</a></div>'
linkset[2]='<div class="menuitems"><a >Lecturas</a></div>'
linkset[1]='<div class="menuitems"><a >Lecturas</a></div>'
linkset[1]+='<div class="menuitems"><a href="tareasesp.htm">Tareas</a></div>'
linkset[1]+='<div class="menuitems"><a >Presentaciones</a></div>'
linkset[1]+='<div class="menuitems"><a >Links</a></div>'
linkset[1]+='<div class="menuitems"><a href="archivos/calpe10-2.pdf" target="iframe" >Calificaciones</a></div>'
 
var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers
function showmenu(e,which){
if (!document.all&&!document.getElementById&&!document.layers)
return
clearhidemenu()
menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj
if (ie4||ns6)
menuobj.innerHTML=which
else{
menuobj.document.write('<layer name=gui bgColor=#D9DDE8 width=800 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
menuobj.document.close()
}
menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
eventX=ie4? event.clientX : ns6? e.clientX : e.x
eventY=ie4? event.clientY : ns6? e.clientY : e.y
var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
if (rightedge<menuobj.contentwidth)
menuobj.thestyle.left=ie8? document.body.scrollLeft+eventX-menuobj.contentwidth : ns8? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
else
if (bottomedge<menuobj.contentheight)
menuobj.thestyle.top=ie4? document.body.scrollTop+eventY-menuobj.contentheight : ns6? window.pageYOffset+eventY-menuobj.contentheight : eventY-menuobj.contentheight
else
menuobj.thestyle.top=ie4? document.body.scrollTop+event.clientY : ns6? window.pageYOffset+eventY : eventY
menuobj.thestyle.visibility="visible"
return false
}
function contains_ns6(a, b) {
while (b.parentNode)
if ((b = b.parentNode) == a)
return true;
return false;
}
function hidemenu(){
if (window.menuobj)
menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
}
function dynamichide(e){
if (ie4&&!menuobj.contains(e.toElement))
hidemenu()
else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
hidemenu()
}
function delayhidemenu(){
if (ie4||ns6||ns4)
delayhide=setTimeout("hidemenu()",500)
}
function clearhidemenu(){
if (window.delayhide)
clearTimeout(delayhide)
}
function highlightmenu(e,state){
if (document.all)
source_el=event.srcElement
else if (document.getElementById)
source_el=e.target
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
else{
while(source_el.id!="popmenu"){
source_el=document.getElementById? source_el.parentNode : source_el.parentElement
if (source_el.className=="menuitems"){
source_el.id=(state=="on")? "mouseoverstyle" : ""
}
}
}
}
if (ie4||ns6)
document.onclick=hidemenu


es la parte importante en el html solo va:

Código:
<a onMouseover="showmenu(event,linkset[0])" onMouseout="delayhidemenu()">Patologia General</a><p>
<a onMouseover="showmenu(event,linkset[1])" onMouseout="delayhidemenu()">Patologia Especial</a><hr>


quiero suponer que el error está en alguno de los comando que ordenan las acciones de onMouseover o de hidemenu... o algo así, la verdad este códio es algo complicado para mi pero ahí dos tres hace lo que le pido...

please please pleas me urge un poco de ayuda!!!!!
  #2 (permalink)  
Antiguo 21/01/2011, 20:01
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: ayuda con menú emergente

WTF! Usabilidad = 0;
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #3 (permalink)  
Antiguo 21/01/2011, 22:40
 
Fecha de Ingreso: enero-2011
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: ayuda con menú emergente

bueno tal vez eso parezca pero a mí me es útil lol

Etiquetas: emergente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:11.