1

这行得通,但是当我第一次悬停时,什么都没有加载。当我关闭鼠标然后重新打开时,ajax 已加载。我希望 ajax 在第一次悬停时加载。

索引.html

<span title="" id="test" class="tooltip"></span>

工具提示.html

<span id="test">this is ajax</span>

jQuery

$('.tooltip').hover(function () {
    var id = $(this).attr('id');
    $.get('tooltip.html #'+id, function(data) {
        $('#'+id).attr('title', data);
    });
});
4

3 回答 3

1

看起来您依赖于浏览器的内置工具提示(在悬停时显示标题。)该工具提示可能是由mouseover事件触发的,这意味着在您动态添加标题后,您需要另一个mouseover事件来实际触发工具提示。似乎它按设计工作。

于 2012-06-19T14:41:48.037 回答
1

这是因为第一次悬停(实际上是 mouseenter 事件)时,ajax 函数会加载数据并更改标题,但是 mouseenter 事件已经触发并且您的工具提示已经打开,所以为时已晚。

最好的办法是直接更改工具提示,而不是更改原始元素的标题。

您实际上应该做的是更改两者并更改悬停功能以检查标题,以便下次悬停时您不需要再次加载信息,而是参考您已经填充的标题。

希望有帮助:)

于 2012-06-19T14:44:47.100 回答
0

如前所述,问题在于浏览器会在您将元素悬停时立即显示内置标题,并且 ajax 会使用一些时间来加载内容并附加它。

我建议您使用许多工具提示插件之一:https ://www.google.com/search?q=tooltip+jquery+plugin

我对 qTip 有过一些很棒的经验。易于设置且易于重新设计。

于 2012-06-19T14:46:59.723 回答