1

I have two issues. 1. I want to remove phase content from java so that I will only have StepsContent in it as I want expand all the steps. 2. when i click Step 1 first, and then click expand all, Step 1 collapses and expand all text issues. Any workaround. Also if there is an easier way to do this through Css please let me know.

JSFIDDLE http://jsfiddle.net/Y3GYR/1/

or below is the code:

   jQuery(".phaseContent").hide();
jQuery(".stepsContent").hide();
//toggle the componenet with phase level
jQuery(".phaseHeading .heading1").click(function () {
    $(this).toggleClass("active");
    var th = jQuery(this).parent();
    jQuery(th).next(".phaseContent").slideToggle(500);
    return false;
});
jQuery(".stepsHeading .heading1").click(function () {
    $(this).toggleClass("active");
    var th = jQuery(this).parent();
    jQuery(th).next(".stepsContent").slideToggle(500);
    return false;
});

//Expand and collapse toggle

$(".accordion-expand-all").click(function () {
    var expandLink = $(this);
    var contentAreas = $(expandLink).closest(".phaseContent").find(".stepsContent");

    // Toggle the content area visibility
    $(contentAreas).toggle();

    // If the content area is now visible
    if ($(contentAreas).is(':visible')) {
        // Change it to the collapse text
        $(expandLink).text('Collapse - all steps');
    } else {
        // Change it to the expand text
        $(expandLink).text('Expand - all steps');
    }

    $(expandLink).closest(".phaseContent").find(".stepsHeading .heading1").toggleClass("active");

    return false;
});

HTML

            <!-- Start Phase -->
                           <!-- Start phase heading -->
                            <div class="phaseHeading"><span class="heading1">Phase 1</span>
                            </div>
                            <!-- Start phase content -->
                            <div class="phaseContent">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum laoreet, nunc eget laoreet sagittis, quam.

                                   <!--Expand steps button-->
                                        <p class="accordion-expand-holder">
                                            <a class="accordion-expand-all" id="st1" href="#">Expand View - all steps</a>
                                        </p>

                                <!-- Start steps heading -->
                                    <div class="stepsHeading"><span class="heading1">Steps 1</span></div>
                                    <div class="stepsContent">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum laoreet.
                                    </div>

                                <!-- Start step 2  -->

                                    <div class="stepsHeading"><span class="heading1">Steps 2</span> </div>
                                    <div class="stepsContent">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum laoreet, nunc eget laoreet sagittis.
                                     </div>

                             <!-- Start step 2  -->

                                    <div class="stepsHeading"><span class="heading1">Steps 3</span> </div>
                                    <div class="stepsContent">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum laoreet, nunc eget laoreet sagittis.
                                     </div>


</div>

1 Answer 1

1

To right collapse\expand you need to manually select what to do, if you toggle array of elements

$(expandLink).closest(".phaseContent").find(".stepsContent")

it will toggle visibility of each of them. Just add a var, and put in it you current show\hide position like that:

    var collapsed = 1;
$(".accordion-expand-all").click(function () {
    ...
        if (collapsed == 0)
     {
        $(contentAreas).hide("slide");
        $(expandLink).text('Expand - all steps');
        collapsed =1;
    }
    else
    {
        $(contentAreas).show("slide");
        $(expandLink).text('Collapse - all steps');
        collapsed = 0;
    }
})

FIDDLE

Sign up to request clarification or add additional context in comments.

2 Comments

That was Awesome... Thanks Do you know how to remove that Phase Content. I actually dont want that only want Steps. The lines under var like ...$(expandLink).closest(".phaseContent").find(".stepsContent");
Do not full understand what do you mean...if you want remove any element it is simple $(element).remove(), to find exactrly needed element you have a lot of selectors

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.