你的代码有几个问题。
Div 不是自闭合标签:
<div /> <!-- Wrong -->
<div></div> <!-- Good -->
当你有空的 div 时,在你的 CSS 中添加以下声明以确保它们有一个正文:
div {
content: "";
}
在您的情况下,jQuery offset() 函数似乎有问题,因为您隐藏了 #tooltip。更喜欢下面的代码来改变它的偏移量:
$('#tooltip').css({
top: o.top,
left: o.left
});
另外,o 的创建似乎很没用。你只需要直接修改offsetvariable:
var offset = $(this).offset();
offset.left += $(this).width();
$('#tooltip').css({
top: offset.top,
left: offset.left
});
最后,尽量不要使用选择器多次访问同一个元素。每次调用时,jQuery 都必须在整个 DOM 树中找到你的元素。
var tooltip = $("#tooltip"); // Use it in mousenter/mouseleave => Avoids 2 useless selections
// In your mousenter function
var el = $(this); // Use "el" to get offset/width => 1 useless selection avoided
你可以找到一个有效的 jsfiddle here。