(AYU) Ocultar / Mostrar div con Jquery

Publicado por demono, Junio 08, 2009, 01:05:37

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

demono

Una vez mas recurro a la ayuda argenta para ver si alguien puede darme una mano con Jquery, seguramente sea una boludez....

El tema es que quiero Ocultar y Mostrar un div con un mismo link.
El codigo que tengo hasta ahora es el siguiente:


$("#mskillerhide").click(function(){
$("div.menu_skiller").hide("slow");
$("#mskillerhide").attr("id","mskillershow"); 
$("#mskiller").attr("src","images/icon_open.jpg"); 
}
);
$("#mskillershow").click(function(){
$("div.menu_skiller").show("slow");
$("#mskillershow").attr("id","mskillerhide"); 
$("#mskiller").attr("src","images/icon_close.jpg"); 
});


Siendo el codigo del link el siguiente:


<a href=# id=mskillerhide><img id=mskiller src=images/icon_close.jpg border=0></a> Skiller

<div class=menu_skiller>
XXX
</div>


El Div cuando presiono el link se oculta perfectamente e incluso cambian los atributos para que me debe reaparecerlo y que queda asi:

<a href=# id=mskillershow><img id=mskiller src=images/icon_open.jpg border=0></a>

El tema  viene cuando vuelvo a clickear sobre el link para que se vuelva a abrir que no pasa nada. Segun lo que vi con firebug los atributos cambian bien, el tema es que no me deja usar el mismo link para hacer ambas cosas...


Alguien tiene alguna idea?
Por ahora solo se me ocurrio tener 2 botones y que se oculte el de mostrar al presionarlo y aparezca el de ocultar y viceversa, pero se me hace que es un mamarracho...

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

Camello_AR

Probaste usando la consola de errores en FF?? (Herramiientas/Consola de Errores) para ver si te tira algún error de ejecución

demono

Cita de: Camello_AR en Junio 08, 2009, 16:33:50
Probaste usando la consola de errores en FF?? (Herramiientas/Consola de Errores) para ver si te tira algún error de ejecución

Acabo de fijarme y no hay ningun error, ni siquiera una advertencia.  :'( :'(

CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

Camello_AR

Yo no entiendo bien la estructura del primer código, seguramente pq usas un framework (o sea me doy cuenta de lo que hace pero no como código), ¿tenés alguna forma que veamos algun ejemplo del codigo funcionando?

demono


CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock

Camello_AR

Fijate que usa una función toggle()

$("a.codeButtonD").click(function(){$("pre.codeD").toggle(); return false;});


se ve que esa función hace todo lo que haces (debe estar contenida en alguno de los .js de jsquery)

demono

Mil gracias came, acabo de encontrarle la vuelta usando la funcion que encontraste. Logicamente hablando lo que habia hecho antes en teoria deberia haber funcionado, pero se ve que hay alguna clase de limitacion con Jquery.

El codigo que termine usando es el siguiente:


var cont = 0;
$("#mskiller_button").click(function()
{
$("div.menu_skiller").toggle("slow");

    if (tool=="skiller")
    {
        if(cont%2==0)
        {
        cont++
        $("#mskiller").attr("src","images/icon_open.jpg"); 
        }
        else
        {
        cont++
        $("#mskiller").attr("src","images/icon_close.jpg");
        }
    }
    else
    {
        if(cont%2==1)
        {
        cont++
        $("#mskiller").attr("src","images/icon_open.jpg"); 
        }
        else
        {
        cont++
        $("#mskiller").attr("src","images/icon_close.jpg");
        }
    }


}
);


CPU X2 7750 | 2x1GB DDR2 800Mhz OCZ | VGA MSI 9600GT OC | Power Supply Powercooler Type R Modular 550w | 2x320GB HDD WD Caviar | Gabinete VTB Rock