Foros del Web » Programando para Internet » Javascript »

Menú rollover, problemas con IE6

Estas en el tema de Menú rollover, problemas con IE6 en el foro de Javascript en Foros del Web. Buenas. Estoy haciendo un menú rollover, que pueden ver en esta página: http://espprog.net63.net/ En firefox todo funciona correctamente, pero en IE6, cuando paso el mouse ...
  #1 (permalink)  
Antiguo 23/02/2009, 11:18
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Menú rollover, problemas con IE6

Buenas. Estoy haciendo un menú rollover, que pueden ver en esta página:

http://espprog.net63.net/

En firefox todo funciona correctamente, pero en IE6, cuando paso el mouse por encima de un elemento del menu, me muestra el bloque de elementos asociados a este, pero ni bien lo saco el bloque se esconde. En firefox esto no es así, puede comprobarlo ustedes mismo entrando a la página.
En el código que está escrito a continuación, incluyo los objetos que me ayudan a manejar el menu. El objeto MenuSelector representa los elementos de la botonera, mientras que MenuBlock representa el bloque de botones al que está asociado el MenuSelector. En la línea remarcada con negrita, están asignados los controladores de evento.
No tengo ni idea de porque esto si funciona en Firefox y no en IE.

[highlight=javascript]

var selectedbtn;

function MenuSelector(id)
{
var innerobj;
var instance = this;

initialize(id);

function initialize(id)
{
instance.block = new MenuBlock('BLOCK_' + id);
addListener(id, 'mouseover', showBlock);
addListener(id, 'mouseout', hideBlock);
}

function showBlock()
{
this.style.cursor = 'pointer' || 'hand';
instance.block.show();
}

function hideBlock()
{
instance.block.hide();
}

}

function MenuBlock(id)
{

var innerobj;

innerobj = document.getElementById(id);

initialize(id);

this.show = show;

this.hide = hide;

function initialize(id)
{
addListener(id, 'mouseover', show);
addListener(id, 'mouseout', hide);
}

function show()
{
innerobj.style.display = 'block';
}

function hide()
{
innerobj.style.display = 'none';
}

}

function MenuButton(id, url)
{

var clickURL = url;
var innerobj = document.getElementById(id);
var instance = this;

initialize(id);

this.unselect = function(){
innerobj.style.fontWeight = 'normal';
}

this.select = function(){
innerobj.style.fontWeight = 'bold';
}

function initialize(id)
{
addListener(id, 'mouseover', seton);
addListener(id, 'mouseout', setoff);
addListener(id, 'click', loadModule);
}

function seton()
{
changeCursor(this);
changeBgColor(this, 'CCCCCC');
}

function setoff()
{
changeBgColor(this, '000000');
}

function loadModule()
{
selectedbtn.unselect();
instance.select();
selectedbtn = instance;
alert('El menu no esta habilitado en la demo.');
//window.open(clickURL, '_SELF');
}

function changeCursor(element)
{
element.style.cursor = 'pointer' || 'hand';
}

function changeBgColor(element, bgColor)
{
element.style.backgroundColor = '#' + bgColor;
}

}
[/javascript]
__________________
Add, never Remove
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 09:36.