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
>
>

Reply via email to