Javascript变量问题

时间:2010-08-20 13:12:06

标签: javascript jquery variables

我创建了一个函数来显示一个单独的div中的标题文本,它的wotks完美,但是有一个“title”属性的问题,所以我想在显示tooltipp后删除它。在鼠标上你显示它agaiin,但变量tooltipptext是空的...同一个想法?

var tooltipptext;    
$(".infoimg").hover(function(event) {
        tooltipptext = $(this).attr("title");

        showToolTip(event, tooltipptext);
        $(this).attr("title", "");

        return false;       
    });

    $(".infoimg").mouseout(function()   {
        $("#bubble_tooltip").hide();
        $(this).attr("title", tooltipptext);
        return false;
    });

1 个答案:

答案 0 :(得分:4)

.hover(),当传递单个函数时,会在 {/ em> mouseenter mouseleave上运行它,因为这样:

tooltipptext = $(this).attr("title");

$(this).attr("title", "");已经运行后再次运行。而是将两个函数传递给.hover(),如下所示:

var tooltipptext;    
$(".infoimg").hover(function() {
    tooltipptext = $(this).attr("title");
    showToolTip(event, tooltipptext);
    $(this).attr("title", "");
}, function()  {
    $("#bubble_tooltip").hide();
    $(this).attr("title", tooltipptext);
});

或者,因为你永远不会在悬停时看到title属性,所以将它存储一次:

$(".infoimg").each(function() {
  var title = $(this).attr("title");
  $(this).data('title', title).attr('title','');
}).hover(function() {      
  showToolTip(event, $.data(this, 'title'));
}, function()  {
  $("#bubble_tooltip").hide();
});

这样可以处理任意数量的图像:)