Me falto terminar te paso como lo haria yo... fijate lo de return false, es para que no se ejecute el link como lo haria normalemnte.. (osea ir a #)
la llamada a funciones en el onclick hace que primero se ejcute lo de setear el active y luego llama a tu funcion en ruby... abajo te pongo la funcion para cambiar la clase comentada paso por paso... <ul id="restaurant_menu"> <li class="noactive"><a onClick='toggleActive(this); setTabMenu(); return false;' href="#">Menu</a></li> <li class="noactive"><a onClick='toggleActive(this); setTabPresetMenu(); return false;' href="#">Preset Menu</a></li> <li class="noactive"><a onClick='toggleActive(this); setTabChef(); return false;' href="#">chef's profile</a></li> </ul> y en js.. function toggleActive(element) { // obtenemos la referencia al ul contendor var container = document.getElementById('restaurant_menu'); // obtenemos los li dentro de ese ul var othersElement = container.getElementByTagName('li'); // recorremos los li for (var i=0; i< othersElement.lenght; i++){ // controlamos si tiene la clase active if(othersElement[i].className == 'active') { // si la tiene se la cambiamos a noactive othersElement[i].className = 'noactive'; } } // por ultimo le ponemos la clase active a el link que disparo el onclick y que recivimos como parametro element.className = 'active'; } On 7/2/07, Fernando Seves <[EMAIL PROTECTED]> wrote: > > Buenas, > > Estoy trabajando en sitio web donde tengo el siguiente menu > > <ul id="restaurant_menu"> > <li class="noactive"><a > onClick='setTabMenu();' href="#">Menu</a></li> > <li class="noactive"><a > onClick='setTabPresetMenu();' href="#">Preset Menu</a></li> > <li class="noactive"><a > onClick='setTabChef();' href="#">chef's profile</a></li> > </ul> > > Los onClick son llamadas a funciones de javascript que cargan el > correspondiente código de Ruby. > > Mi intención es hacer que cuando yo pulse en un enlace de este menú ( es > decir cargue una función) el script situado en esta función haga lo > siguiente: > > 1. Chequee las class de los li de esta lista y detecte si hay alguno que > tenga el id "active" (es decir estado pulsado) y lo cambie a "noactive" > 2. Cambie la class de este li a "active" para dejarlo "marcado" > > Había pensado en un código parecido a este: > > var estado = document.GetElementByAttribute("class","active"); > for (estado i=0 i< estado.lenght; i++){ > var id = estado[i].getAttribute("class"); > if (id) { > estado[i].setAttribute("class","noactive"); > } > } > document.getElementByAttribute > ('class').setAttribute("class","active"); > > Aunque me temo que estoy haciendo algo mal.... > > Un saludo y gracias. > > <[EMAIL PROTECTED]> > _______________________________________________ > Lista de distribución Ovillo > Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org > Puedes modificar tus datos o desuscribirte en la siguiente dirección: > http://lists.ovillo.org/mailman/listinfo/ovillo > -- _____________________________________ Leandro Asrilevich Web & Multimedia Developer Movil: +54 (11) 15 6161-9998 Tel: +54 (11) 4307-3085 Web: www.beastx.com.ar MSN: [EMAIL PROTECTED] Skype User: leandro.asrilevich Defensa 1805 PB "E" Capital Federal - Buenos Aires - Argentina _______________________________________________ Lista de distribución Ovillo Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org Puedes modificar tus datos o desuscribirte en la siguiente dirección: http://lists.ovillo.org/mailman/listinfo/ovillo