Thanks lihao. Actually, there are cases when there would be more than one "newdiv" following an "olddiv"...which means that the jquery .next identifier wouldn't always work. ie: It's not a 1:1 ratio. So I've been trying to find the most simple&elegant solution, without resorting to the old javascript functions...
>From what little I've learned so far, jquery seems to work mostly in one direction (JQ -> DOM) and it doesn't seem all that geared up for doing things the other way around (unless you use a plugin like metadata for passing vars, which isn't any simpler). Emlyn On Feb 8, 11:35 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > On Feb 8, 4:08 pm, cbmtrx <[EMAIL PROTECTED]> wrote: > > > OK, I'll need to look into this click event. If it's worth rewriting > > (because the original degrades poorly) then I'll probably do it this > > way. > > > Was hoping jquery would simplify!! :/ > > For your sample code, you don't need that javascript link, you can > just define 'click(toggle)' event for <a /> element and then trigger > it in <input /> elememt's 'click' event. using 'class' instead of 'id' > and letting jQuery help you find corresponding DIVs can make your code > simpler (you can extend this into more than 2 groups easily): > > <!--ONE--> > <a href="#">Open 1</a> > > <div class="olddiv"> > Default page content > </div> > > <div class="newdiv"> > <form> > New page content > <input type="button" value="Close" /> > </form> > </div> > > <!--TWO--> > <a href="#">Open 2</a> > > <div class="olddiv"> > Default page content > </div> > > <div class="newdiv"> > <form> > New page content > <input type="button" value="Close" /> > </form> > </div> > > <script type="text/javascript"> > $('a').toggle(function() { > $(this).next('div.olddiv').hide() > .next('div.newdiv').show(); > }, function() { > $(this).next('div.olddiv').show() > .next('div.newdiv').hide(); > }); > $('[EMAIL PROTECTED]"Close"]').click(function() { > $(this).parents('div.newdiv').prevAll('a:first').click(); > }); > </script> > > Regards, > lihao(XC)