当悬停在跨度上时,我想得到offsetLeft和offsetTop值,这样我就可以在它附近做一些悬停。当我这样做时,两个值都得到0。
有什么更好的方法可以解决这个问题?我正在使用jQuery。
假设我开始(通过服务器端脚本循环):
<span onmouseover="hoverNearMe(this.offsetLeft,this.offsetTop);">some username</span><br />
最终想法:
我根据“代码杠杆”/ DRY给出答案。
您可以在自己的js库中反复使用的较长功能。
然而,第二个简短答案也是100%正确。
答案 0 :(得分:28)
$(this).offset().left
和$(this).offset().top
答案 1 :(得分:13)
我认为你应该能够做到这一点:
<强> HTML 强>
<span class="get-close-to">some username</span><br />
<强>的jQuery 强>
jQuery('.get-close-to').hover(function() {
var offset = jQuery(this).css('offset');
alert( 'Left: ' + offset.left + '\nTop: ' + offset.top );
});
答案 2 :(得分:-1)
为什么需要服务器端脚本?
试试这个:
var positionImg = function(e) {
$(this).offset();
var zoomCntnrPos = $(this).offset.top;
if (zoomCntnrPos >= maxBottomVPos)
{
tPosX = e.pageX;
tPosY = e.pageY +20;
}
else if (zoomCntnrPos <= maxTopVPos){
tPosX = e.pageX;
tPosY = e.pageY +40;
}
else
{
tPosX = e.pageX;
tPosY = e.pageY -100;
}
$zoomContainer.css({top: tPosY, left: tPosX});
};