Ante todo gracias por tu dedicación Tunait.
Te comento qué es lo que quiero hacer.
Mi intención es asignar eventos dinamicamente.
Entonces, tengo un ENLACE
<a href"#" onclick="abrir_buscador(event)">Buscar</a>[/INDENT[/INDENT]
y mi función "abrir_buscador" expande una tabla oculta en la página, y ademas dinamicamente, quiero ponerle al enlace del que viene este evento, que en su onclick, tenga una función diferente (cerrar_buscador())
El código de mi función abrir_buscador es el siguiente
function abrir_buscador_inicial(evt)
{
var objeto_buscador;
// Capturamos el Evento
var e = (window.event) ? window.event : evt;
// Definimos que Objeto produjo el Evento
objeto_buscador = (e.target) ? e.target : ((e.srcElement) ? e.srcElement : null);
// Abro el Buscador
document.getElementById("tabla_buscador").style.di splay = "inline";
// Asigno al objeto de ABRIR y CERAR el buscador, el evento correspondiente (En este caso cerrar)
objeto_buscador = agregar_evento_dinamico(objeto_buscador,"onclick", "cerrar_buscador(objeto_buscador)")
}
Mi intención es en lo remarcado (al asignar el evento de forma dinámica) agregar_evento_dinamico(objeto_buscador,"onclick", "cerrar_buscador"), poder pasarle uno o varios parámetros a la función
Mi función que cierra el buscador es la sigueinte
function cerrar_buscador(el_objeto)
{
// Asigno al objeto de ABRIR y CERAR el buscador, el evento correspondiente (En este caso cerrar)
el_objeto = agregar_evento_dinamico
(el_objeto,"onclick","abrir_buscador(el_objeto)")
// Cierro el Buscador
document.getElementById("tabla_buscador").style.di splay = "none";
}
Mi función que agrega eventos dinamicamente es la siguiente
function agregar_evento_dinamico (el_objeto, el_evento, la_funcion)
{
if(el_evento.substr(0,2).toLowerCase() == "on")
{
el_evento = el_evento.substr(2,el_evento.length)
}
// Agregamos en tiempo de Ejecución el evento MouseOut del Boton
if (window.addEventListener) // Si El navegador tiene un EventListener (Firefox y Netscape)
{
el_objeto.addEventListener(el_evento,la_funcion,tr ue);
}
else // Si no es Netscape ni Firefox
{
// Si el navegador es IE 5+
if (window.attachEvent)
{
var cadena_evento = "on" + el_evento;
el_objeto.attachEvent(cadena_evento,la_funcion);
}
else // Si no es IE 5+
{
if (document.getElementById)
{
el_objeto.onmouseout = la_funcion;
}
}
}
return(el_objeto);
}
Espero no haberos liado, y que podais echarme una mano.
Muchas gracias