Foros del Web » Programando para Internet » Javascript »

Problemas Con Menu Desplegable

Estas en el tema de Problemas Con Menu Desplegable en el foro de Javascript en Foros del Web. Hola Amigos, he posteado hace cosa de un mes en el foro ASP, este tema, pero veo que nadie me contesta, a si que a ...
  #1 (permalink)  
Antiguo 27/12/2005, 07:34
 
Fecha de Ingreso: julio-2005
Mensajes: 137
Antigüedad: 18 años, 10 meses
Puntos: 0
Problemas Con Menu Desplegable

Hola Amigos, he posteado hace cosa de un mes en el foro ASP, este tema, pero veo que nadie me contesta, a si que a ver si mis problemas van a ser por la parte de Java.

Si me pueden ayudar POOOORVAFORRRR!!!!!

El error es que necesito contruir unos menús desplegables cogiendo opciones de una base de datos.
Solo me funciona con el primer menú, el resto no me los muestra en pantalla.

Les adjunto el código, tanto el ficheo JS como el código ASP relacionado.

ARCHIVO: MENU.JS
*******************
var TIMER_SLIDE = null;
var OBJ_SLIDE;
var OBJ_VIEW;
var PIX_SLIDE = 10; //this is the amount of slide/DELAY_SLIDE
var NEW_PIX_VAL;
var DELAY_SLIDE = 30; //this is the time between each call to slide
var DIV_HEIGHT = 22; //value irrelevant
var SUB_MENU_NUM =0;
var RE_INIT_OBJ = null;
var bMenu = document.getElementById("curMenu");
var MainDiv,SubDiv

//DD added code
document.write('<div id="tempcontainer" class="mainDiv" style="visibility: hidden; position: absolute"></div>')

function Init(objDiv)
{
if (TIMER_SLIDE == null)
{
SUB_MENU_NUM = 0;
MainDiv = objDiv.parentNode;
SubDiv = MainDiv.getElementsByTagName("DIV").item(0);
SubDiv.onclick = SetSlide;

OBJ_SLIDE = MainDiv.getElementsByTagName("DIV").item(1)
OBJ_VIEW = OBJ_SLIDE.getElementsByTagName("DIV").item(0);

document.getElementById("tempcontainer").innerHTML =MainDiv.getElementsByTagName("DIV").item(2).inner HTML //DD added code
DIV_HEIGHT=document.getElementById("tempcontainer" ).offsetHeight //DD added code

for (i=0;i<OBJ_VIEW.childNodes.length;i++)
{
if (OBJ_VIEW.childNodes.item(i).tagName == "SPAN")
{
SUB_MENU_NUM ++;
OBJ_VIEW.childNodes.item(i).onmouseover= ChangeStyle;
OBJ_VIEW.childNodes.item(i).onmouseout= ChangeStyle;
}
}

NEW_PIX_VAL = parseInt(MainDiv.getAttribute("state"));
}

}
function SetSlide()
{
if (window.TIMER_SLIDE) clearInterval(TIMER_SLIDE) //DD added code
if (TIMER_SLIDE == null && this.parentNode == MainDiv)
TIMER_SLIDE = setInterval('RunSlide()', DELAY_SLIDE);
else
{
RE_INIT_OBJ = this;
setTimeout('ReInit()', 200);
}
}

function ReInit(obj)
{
Init(RE_INIT_OBJ);
TIMER_SLIDE = setInterval('RunSlide()', DELAY_SLIDE);
RE_INIT_OBJ = null;
}

function RunSlide()
{

if (OBJ_VIEW.getAttribute("state") == 0)
{

NEW_PIX_VAL += PIX_SLIDE;
OBJ_SLIDE.style.height = NEW_PIX_VAL;

if (NEW_PIX_VAL >= DIV_HEIGHT) //DD modified code
{
clearInterval(TIMER_SLIDE);
TIMER_SLIDE = null;
OBJ_VIEW.style.display = 'inline';
OBJ_VIEW.setAttribute("state","1")
MainDiv.setAttribute("state",NEW_PIX_VAL);
}
} else
{
OBJ_VIEW.style.display = 'none';
NEW_PIX_VAL -= PIX_SLIDE;
if(NEW_PIX_VAL > 0)OBJ_SLIDE.style.height = NEW_PIX_VAL;
if (NEW_PIX_VAL <= 0)
{
NEW_PIX_VAL = 0;
OBJ_SLIDE.style.height = NEW_PIX_VAL
clearInterval(TIMER_SLIDE);
TIMER_SLIDE = null;
OBJ_VIEW.setAttribute("state","0")
MainDiv.setAttribute("state",NEW_PIX_VAL);
}
}
}

function ChangeStyle()
{
if (this.className == this.getAttribute("classOut"))
this.className = this.getAttribute("classOver");
else
this.className = this.getAttribute("classOut");
}



********************
FICHERO ASP (SOLO PONGO EL CODIGO RELACIONADO A LOS MENUS, LAS DEMAS TABLAS DE LA PAG. LAS IGNORO
*************************
<body>
<script language="JavaScript" type="text/javascript" src="menu.js"></script>
dim conexionBd1,rsusua1,sqlusua1,emenu,opcion,sqlusua2 ,rsusua2,contador1
Set ConexionBd1=Server.CreateObject("ADODB.Connection" )
SQLusua1="SELECT DISTINCT categoria1 FROM categorias "
SQLusua2="SELECT categoria1,categoria2 FROM subcategoria "
conexionBd1.Open"DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& server.MapPath("XXXX/YYY.mdb"),3,1
set RSusua1=ConexionBd1.execute(SQLusua1)
set RSusua2=ConexionBd1.execute(SQLusua2)
contador1=0

While Not RSusua1.EOF

emenu=Rsusua1.fields("categoria1")

%>

<!--------INICIO MENU 1---------->
<div class="mainDiv" state="0">
<div class="topItem" classOut="topItem" classOver="topItemOver" onMouseOver="Init(this);" >
<p class="b01"><img src="images/e02.gif" width="6" height="5" alt="" border="0" align="absmiddle">&nbsp;&nbsp;<%=Rsusua1.fields("c ategoria1")%></div>
<div class="dropMenu" >

<div class="subMenu" state="0">


<%While Not RSusua2.EOF
If rsusua1.fields("categoria1")=rsusua2.fields("categ oria1") then%>
<span class="subItem" classOut="subItem" classOver="subItemOver"><a href="http://www.dynamicdrive.com"><%=Rsusua2.fields("categoria 2")%></a></span><BR />
<%end if

RSusua2.Movenext

Wend%>

</P>
</div>
</div>
</div>

<div align="center"><img src="images/hr01.gif" width="137" height="3" alt="" border="0"></div>

<%

RSusua1.Movenext%>

<%Wend
RSusua1.CLOSE
RSusua2.CLOSE
Set RSusua1 = Nothing
ConexionBD1.Close
Set ConexionBD1 = Nothing
%>

************************

ESPERO QUE OS SIRVA PARA PODER AYUDARME, GRACIAS
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 11:02.