编辑更新的问题:因为您正在使用< area>这是一个不同的故事,从coords属性获取更容易,如下所示:
var position = $(this).attr('coords').split(',');
x = +position[0] - 50;
y = +position[1] - 170;
偏移量只是考虑工具提示本身的硬编码宽度/高度.除了上述内容之外,您还需要使用top和left而不是margin-top和margin-left.另外,要考虑页面中#content< div>的位置,请为其提供工具提示的相对位置,如下所示:
#content { position: relative; }
然后……而不是.after(),使用.append(),因此它被添加到该父项中.
原始问题:
对象.position()返回有顶部和左侧属性…但是你仍然需要.offset()(它相对于文档,其中.position()相对于偏移父项),所以它应该如下所示:
var position = $(this).offset(),
x = position.left,
y = position.top; //not right!
或这个:
var position = $(this).offset();
var x = position.left;
var y = position.top;
…但是如果没有单个var逗号分隔的语句,或者每行都有一个var,那么你也在创建(或尝试)全局变量,这些变量将在IE中爆炸.