只是使用位置代替。.position() 方法允许我们检索元素相对于偏移父元素的当前位置。将此与 .offset() 进行对比,后者检索相对于文档的当前位置。
$(".emailFriend").insertBefore('.emailIcon').hide();
$(".emailIcon").on("click", function(e) {
$(".emailFriend").css({
"position": "absolute",
"left": $(this).position().left,
"top": $(this).position().top
}).fadeIn(500);
return false;
});
添加了 appendTo('.userTools')。在相同位置显示的元素应该在同一个元素内。然后位置工作并且即使您更改布局也将工作。
如果您出于任何原因不想更改 dom 结构,则应使用以下内容:
$(".emailFriend").hide();
$(".emailIcon").on("click", function(e) {
$(".emailFriend").css({
"position": "absolute",
"left": $(this).offset().left-$(".emailFriend").offsetParent().offset().left,
"top": $(this).offset().top-$(".emailFriend").offsetParent().offset().top
}).fadeIn(500);
return false;
});