El día 3/07/07, Fernando Seves <[EMAIL PROTECTED]> escribió: > > Muchas gracias Leandro. > > Lo pruebo. > > un saludo > > El día 3/07/07, Leandro Asrilevich <[EMAIL PROTECTED]> escribió: > > > > cambiaste la llamada de la funcion toggleActive a 2do lugar por alguna > > razon > > en especial?, yo lo puse primero en el ejemplo por que no sabia que > hacia > > tu > > otra funcion y puede estar haciendo algo que no deje funcionar el > resto.. > > > > prueba de usar solo la llamada a la funcion toggle sin llamar a tu otra > > funciona a ver si anda, si no anda agrega algun logeo (console.log o un > > simple alert) en cada paso de la funcion toggle para ver donde esta > > fallando.. > > > > > > > > On 7/3/07, Fernando Seves <[EMAIL PROTECTED]> wrote: > > > > > > Hola Leandro > > > > > > Muchas gracias por la ayuda con el script aunque todavia no consigo > > > hacerlo > > > funcionar > > > > > > function toggleActive(element) { > > > var container = document.getElementById('restaurant_menu'); > > > var othersElement = container.getElementByTagName('li'); > > > for (var i=0; i< othersElement.lenght; i++){ > > > if(othersElement[i].className == 'activo') { > > > // si la tiene se la cambiamos a noactive > > > othersElement[i].className = 'noactive'; > > > } > > > } > > > element.className = 'activo'; > > > } > > > > > > Las funciones setTab si las carga pero la toggleactive la ignora > > > > > > <ul id="restaurant_menu"> > > > <li class="noactive"><a > > > onClick='setTabMenu();toggleActive(this);return false;' > > > href="#">Menu</a></li> > > > <li class="noactive"><a > > > onClick='setTabPresetMenu();toggleActive(this);return false;' > > > href="#">Preset Menu</a></li> > > > <li class="noactive"><a > > > onClick='setTabChef();toggleActive(this);return false;' > href="#">chef's > > > profile</a></li> > > > > > > </ul> > > > > > > > > > un saludo y gracias nuevamente > > > > > > El día 3/07/07, Leandro Asrilevich <[EMAIL PROTECTED]> escribió: > > > > > > > > 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 > > > > > > > > > > > > > > > > -- > > > skype >> arbaa4 > > > www.sevtov.com > > > [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 > > > > > > -- > skype >> arbaa4 > www.sevtov.com > [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 >
Una pequeña anotación: Si quieres cambiar la clase con el método setAttribute, debes de tener en cuenta que con IE el parámetro es "className" y no "class" como en el resto de navegadores. Lo que tendrías que hacer en tu caso, es detectar el navegador [1], y según cual, usar uno u otro. Pongo un ejemplo. if (Exploter) estado[i].setAttribute("className","noactive"); else estado[i].setAttribute("class","noactive"); [1] http://www.quirksmode.org/js/detect.html -- Philipp Keweloh skunk1 at gmail dot com _______________________________________________ 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