Obviously that code now has the presentational stuff for the tooltip <span> I create and destroy. Comments on that code would be great :) This is my first go with javascript at all so...
-- Alex On Sat, Dec 6, 2008 at 1:31 AM, Alex Hempton-Smith < [EMAIL PROTECTED]> wrote: > Ah I was just about to post about reading up on .data, here's my current > code which works, will look through yours now to see if you do it better! > > $("#places ul li a").hover(function() { > var title = $(this).attr("title"); > jQuery.data(this, "titleText", title); > $(this).removeAttr("title") > $(this).parent().append("<span>" + title + "</span>"); > $("#places ul li span").fadeIn(); > }, function() { > var title = jQuery.data(this, "titleText"); > $(this).next("span").remove(); > $(this).attr({ > title: title > }); > }); > > -- Alex > > > > On Sat, Dec 6, 2008 at 1:27 AM, Richard D. Worth <[EMAIL PROTECTED]>wrote: > >> >> On Fri, Dec 5, 2008 at 8:22 PM, Alex Hempton-Smith < >> [EMAIL PROTECTED]> wrote: >> >>> I'm using this code, and the "title" variable is a local variable in the >>> hover-over function, and not able to be accessed from the next function - >>> therefore my tooltip has no content the next time I hover over: >>> $("#places ul li a").hover(function() { >>> var title = $(this).attr("title"); >>> $(this).removeAttr("title") >>> }, function() { >>> $(this).attr({ >>> title: title >>> }); >>> }); >>> >>> (I've removed my custom tooltip code for clarity and I'm just focussing >>> on the title stuff here). >>> >>> Is there any way I could enclose the whole lot in a function and store >>> the variable in an enclosing function perhaps? >>> >> >> I recommend using .data(): >> >> $("#places ul li a").hover( >> function() { >> var a = $(this); >> a.data("title", a.attr("title")).removeAttr("title"); >> }, >> function() { >> var a = $(this); >> a.attr({ title: a.data("title") }); >> }); >> >> For more info, see >> >> http://docs.jquery.com/Core/data >> >> - Richard >> >> >