Hi & thanks again for your help Dave.
Do you know of a better way to do this bit?

<h3><div class="ctrls"><a href="#"><span class="min"></span></a></
div>Reviews</h3>

i am using the href as i want to use a hover image, but if it is far
down the page & a user clicks on it to show/hide the content, the
browser scrolls back to the top of the page.
any ideas?


On May 12, 1:45 am, Dave Methvin <[EMAIL PROTECTED]> wrote:
> Ah, I think I see it, but I should have seen it earlier.
>
> I'm going to assume your two .click() methods are inside a .ready()
> handler or other block that doesn't execute until the markup is there.
>
> Remember that the .click() method sets an event handler for the
> elements matching the selector **at the time the .click() method is
> called**.
>
> So your handler for ".min" attaches to the elements that initially
> have a class of min. There aren't any elements with the class max so
> that one does nothing. That explains why the min works but the max
> doesn't.
>
> It looks like you're using the min and max classes to show some sort
> of image defined by css, so you probably want to keep those the way
> they are. If all your entries are initially at min, you could just
> attach a single handler with the ".min" and handle the toggling inside
> that one handler. If some start at min and some at max, that wouldn't
> work.
>
> What I would do is create another class, say minmax, and attach the
> event handler with that. Inside the handler, see if the current class
> is min or max and do the opposite.
>
> $('.minmax').click(function() {
>   var $this = $(this);
>   if ( $this.is(".max") ) {
>     $this.removeClass("max").addClass("min")
>        .parents(".Container").children(".Content").show();
>     $.cookie($this.parents(".Container").attr("id"),
>         'closed', { expires: -1 });
>   } else {
>     $this..removeClass("min").addClass("max")
>        .parents(".Container").children(".Content").hide();
>     $.cookie($this.parents(".Container").attr("id"),
>        'closed', { expires: 7 });
>   }
>
> });
>
> Or a shorter version:
>
> $('.minmax').click(function() {
>   var $this = $(this);
>   var togv = $this.is(".max")?
>      [ "max", "min", "show", -1 ] :
>      [ "min", "max", "hide", 7 ];
>   $this.removeClass(togv[0]).addClass(togv[1]).
>        .parents(".Container").children(".Content")[togv[2]]();
>    $.cookie($this.parents(".Container").attr("id"),
>         'closed', { expires: togv[3] });
>
> });
>
> <span class="min minmax"></span>

Reply via email to