Hi Erik,

What you've got here is pretty close, but it would result in the herky-
jerky loading of the first form clicked.

Imagine the page loads with both forms invisible (as you can see here:
http://cotworld.com/jquery-test/ ). With your code, if Button1 is
clicked (for example), Form2 will briefly appear and then slide away -
when it should have just remained hidden and Form1 should have slid
into view.


On Jul 13, 3:28 pm, "Erik Beeson" <[EMAIL PROTECTED]> wrote:
> I'm wondering if your description of what you want is a little off.
> You say you want to hide form1 if button1 is clicked and form1 is
> already visible. But your code looks more like you're trying to hide
> form2 if button1 is clicked... If you want the latter, I think it
> would be as easy as removing the :visible and :hidden part:
>
> // Show Form1
> $("#Button1").bind('click', function(){
>                // Hide the Form2 if necessary
>                $("#Form1").slideDown();
>                $("#Form2").slideUp();
>
> });
>
> // Show Form2
> $("#Button2").bind('click', function() {
>                // Hide Form1 if necessary
>                $("Form2").slideDown();
>                $("Form1").slideUp();
>
> });
>
> That would result in button1 always showing form1 and hiding form2,
> and button2 always showing form2 and hiding form1. Is that what you
> want?
>
> It also sounds like you might considering looking into one of the
> various Accordion plugins.
>
> --Erik
>
> On 7/12/07, navvywavvy <[EMAIL PROTECTED]> wrote:
>
>
>
> > I've got two forms. When the page loads, both of the forms are hidden
> > from view with display: none;.
>
> > When Button1 is clicked, I want Form1 to appear.
> > When Button2 is clicked, I want Form2 to appear.
>
> > If Form1 is visible and Button1 is clicked, I want Form1 to disappear
> > and THEN I want Form2 to appear.
> > If Form2 is visible and Button2 is clicked, I want Form2 to disappear
> > and THEN I want Form2 to appear.
>
> > I can't seem to find a way to make these chain properly. If one of the
> > forms was visible from the get-go, it could work just fine, but
> > because in the beginning they're both hidden, it won't work. Here is
> > my code:
>
> > // Show Form1
> > $("#Button1").click(
> >         function(){
> >                 // Hide the Form2 if necessary
> >                 $("#Form2:visible").slideUp();
> >                 $("#Form1:hidden").slideDown();
> >         });
>
> > // Show Form2
> > $("#Button2").click(
> >         function() {
> >                 // Hide Form1 if necessary
> >                 $("Form1:visible").slideUp();
> >                 $("Form2:hidden").slideDown();
> >         });
>
> > Obviously the reason they are not "chaining" is because they're not
> > chained in the code, but if I did it like this:
>
> > $("Form1:visible").slideUp(function() {
> >         $("Form2:hidden").slideDown();
> > });
>
> > I would have the problem that I mentioned above where Form2 would only
> > appear if Form1 was already visible.
>
> > So, how can I make this work?

Reply via email to