There is a possible problem using siblings() - if Basics:Location is the
current selection, and you then browse through the other accordion panels
then presumably while you are opening/closing panels the RH panel does not
change, ie still showing Locations; if you decide to click on Belly in the
Pattern panel, then you need to close Basics:Location which is not a sibling
of the one you need to open!



Brian Cherne wrote:
> 
> Hi Mitchell, I'm going to try writing some code and hopefully you'll get
> the
> idea and make it work (as it's untested). Basically, instead of writing
> everything out verbosely... try to determine automatically what needs to
> happen from the information stored in the DOM.
> 
> $('.AccordionPanelContent a').click(function(){
>     var targetId = this.id.toLowerCase();
>     var txt = $(this).text();
> 
>     $("#attrname").css('background-color','#8FA9C5');
>     $("#attrtext").text( txt );
> 
>     $( targetId ).show().siblings().hide();
> });
> 
> I'm not sure about that last line... it depends on how many siblings. You
> may consider rewriting it:
> 
> $( targetId ).show().siblings(':visible').hide();
> 
> Or, possibly:
> 
> $( targetId ).siblings(':visible').hide().end().show();
> 
> This page in the documentation is your friend:
> http://docs.jquery.com/DOM/Traversing
> 
> Also, while I've coded this with your example/HTML in mind I really have
> to
> say that I do not like having an id of "location" and an id of "Location"
> ... that's just screaming for trouble.
> 
> Cheers,
> Brian.
> 
> 
> 
> On 8/2/07, Mitchell Waite <[EMAIL PROTECTED]> wrote:
>>
>>  That helps a lot Glen but I am still stuck.
>>
>>
>>
>> Here is my link
>>
>>
>>
>> http://www.whatbird.com/wwwroot/Components/Accordion%20Menu.html
>>
>>
>>
>> Each of the items inside a main menu will open its own layer, you can see
>> the first two are working.
>>
>>
>>
>> And excuse my confusion I should have called this "*close all divs but
>> one
>> *" as it has nothing to do with "show all"
>>
>>
>>
>> I don't think :last applies to the last DIV  clicked.
>>
>>
>>
>> In a DIV can I use an ID and a class at the same time? Because if that
>> was
>> possible I could use addclass to hide all the divs with that class, then
>> show the one that is clicked (assuming I could make the close all happen
>> before the show)
>>
>>
>>
>> I'm not using any tables, and all I know is if an object is visible or
>> invisible.
>>
>>
>>
>> Thanks
>>
>>
>>
>> Mitch
>>
>>
>>
>>
>>
>> *From:* jquery-en@googlegroups.com [mailto:[EMAIL PROTECTED]
>> *On
>> Behalf Of *Glen Lipka
>> *Sent:* Thursday, August 02, 2007 7:30 PM
>> *To:* jquery-en@googlegroups.com
>> *Subject:* [jQuery] Re: Show all?
>>
>>
>>
>> Might be easier if you post an page that isn't working.  We could be more
>> specific.
>> However...
>> Use a "class" when you want to refer to something that is repeated on the
>> page.
>> Also you can use :last to find the last one.
>> $("tr:last").show() would show the last row found.
>>
>> Does that help?
>>
>> Glen
>>
>>  On 8/2/07, *Mitchell Waite* <[EMAIL PROTECTED]> wrote:
>>
>> What I am looking for is a way to hide the last one of these that was
>> clicked. I tried saving the object that was last used in a var but that
>> didnt work. I thought then maybe I could create some kind of "close all"
>> that would close all the other layers but not the one we have clicked to
>> show.
>>
>>            $('#Location').click(function() {
>>          $("#attrname").css('background-color','#8FA9C5');
>>          $("#attrtext").text("Location");
>>          $("#location").show();
>>          $("#shape").hide();
>>    });
>>
>>        $('#Shape').click(function() {
>>          $("#attrname").css('background-color','#8FA9C5')
>>          $("#attrtext").text("Shape");
>>          $("#location").hide();      /* should hide location */
>>          $("#shape").show();
>>    });
>>
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Show-all--tf4210083s15494.html#a11977192
Sent from the JQuery mailing list archive at Nabble.com.

Reply via email to