If you're only trying to get a color change on an anchor when you
hover, then just do that with CSS - there's no need to use javascript
for that

li a { color: black }
li a:hover { color: red }

The only real hitch is if you're trying to hover over something other
than an anchor (like a div or a span), and you have to support IE6.
IE6 only supports hover on anchors, while every other modern browser
supports hover on just about anything.  (IE7+ properly support hover)

rolfsf



On Oct 11, 12:56 pm, jez_p <[EMAIL PROTECTED]> wrote:
> Thank you very much for your help Eric - and for replying so quickly.
> All I had left to do was to give the default menu item the class of
> "clicked" and it works just how I want it. Thanks again.
>
> On Oct 11, 8:24 pm, Eric <[EMAIL PROTECTED]> wrote:
>
> > Great question, jez_p!
>
> > You've described a common problem. You'll be happy to know that
> > there's a solution, _and_ that it will help you out in a number of
> > other ways as you move forward. The solution involves separating the
> > 'clicked' and 'hovered' states, and then specifying that the link is
> > red on either 'clicked' or 'hovered'.  We're going to move this code
> > over to use CSS classes, and we'll use a couple of the following
> > jQuery functions ( seehttp://docs.jquery.com/Attributes):
> > - addClass()
> > - removeClass()
>
> >   $('li a').hover (function() {
> >                   $(this).addClass('hover');
> >                 },
> >             function(){
> >                   $(this).removeClass('hover');
> >                 }
> >         );
>
> >   $('li a').click (function() {
> >                   $('li a.clicked').removeClass('clicked');
> >                   $(this).addClass('clicked');
> >         });
>
> > and in your CSS file:
>
> > /* normal nav link */
> > li a {    color: black }
>
> > /* highlighted nav link */
> > li a.hover, li a.clicked { color: red }
>
> > One nice thing is that your style is separated form your code, so you
> > can hand it off to a designer who may not know Javascript.  Also, you
> > can easily assign special styles to either hover or clicked separately
> > if you want.
>
> > -E
>
> > On Oct 11, 2:29 pm, jez_p <[EMAIL PROTECTED]> wrote:
>
> > > I'm sure this has a very simple solution, but I am just starting out
> > > and can't work it out, so I would appreciate it if anyone could give
> > > me some help.
>
> > > I have a basic text menu, which when the menu items are clicked the
> > > page content changes. What I want is for the menu item text to change
> > > color when hovered over - from black to red, and for the menu item
> > > that has been clicked to be red. The hovering part I have is:
>
> > >   $('li a').hover (function() {
> > >                   $(this).css({color:'red'});
> > >                 },
> > >             function(){
> > >                   $(this).css({color:'black'});
> > >                 }
> > >         );
>
> > > For the clicking part I have:
>
> > >   $('li a').click (function() {
> > >                   $('li a').css({color:'black'}); //to reset the menu 
> > > items to
> > > black
> > >                   $(this).css({color:'red'});
>
> > >         });
>
> > > The problem I have is that the mouse pointer is still hovering over
> > > the menu item after it has been clicked, and when it is moved away it
> > > resets all the menu items back to black - whereas I want it to be red.
>
> > > I hope I have explained myself clearly.

Reply via email to