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

Responder a