Haga clic en lógica: intercambie iconos con jQuery

Tengo dos botones que muestran/ocultan áreas debajo. Por defecto, ambos botones tienen los siguientes iconos: "ui-icon-triangle-1-e

Cuando se hace clic en un botón, quiero cambiar el ícono del botón en el que se hizo clic a: "ui-icon-triangle-1-s, y mostrar la sección adecuada a continuación mientras oculta el otro si estaba abierto.

Parece que no puedo obtener la lógica correcta cuando amplío una sección y luego hago clic en otro botón. Las áreas se intercambian correctamente, pero los iconos de los botones no se actualizan...

Necesito más ojos para mirar y decirme lo que me estoy perdiendo.

$(".features").bind("click", function () {
    var that = this,
        pid  = $(this).attr("id"),
        pidC = pid + "C",
        index = $(this).closest("td").index();

    $(".features").find("span").removeClass("ui-icon-triangle-1-s").addClass("ui-icon-triangle-1-e");
    $(that).find("span").removeClass("ui-icon-triangle-1-e").addClass("ui-icon-triangle-1-s");

    // indicator OFF for all
    $(".ui-icon-triangle-1-s").removeClass("ui-icon-triangle-1-s").addClass("ui-icon-triangle-1-e");
    $("#prT").find("td").removeClass("txtCCC");

    $.each($("#prT").find("tr").children(), function () {
        if ($(that).index() != index) {
            $(that).addClass("txtCCC");
        }
    });

    if ($(".fList").hasClass("current")) {
        $(".fList:visible").slideUp().removeClass("current");

        if ($(".fList:visible").attr("id") != pidC) {
            $("#" + pidC).slideDown(function(){
            }).addClass("current"); 
        }           
    } else {        
        $("#" + pidC).slideDown(function(){
            $(".ui-icon-triangle-1-e", that).removeClass("ui-icon-triangle-1-e").addClass("ui-icon-triangle-1-s");
        }).addClass("current");

    }
});

preguntado el 27 de julio de 12 a las 19:07

esto podría ayudar: jsfiddle.net/Mhwzv -

Sí, esta es la mejor manera. Compliqué demasiado mi código... como de costumbre;) -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.