1

在下面的函数中,我传递了一个包含位置 (x & y) 值的参数 pos。如您所见,我正在尝试使用这些值来放置 div 标签的输出。由于某种原因,它不起作用。任何人都可以看看我做错了什么吗?

此功能的目标是在您悬停的位置显示 div 中的 html...

目前,它正在网页底部显示悬停的输出。

谢谢克里斯

featureOver: function(ev,latlng,pos,data)   
{  
    var X = pos.x;  
    var Y = pos.y;  
    alert('X = ' + X + '  ' + 'Y = ' + Y);    
    document.body.style.cursor = "pointer";  
    $("div#over").css("top",  Y + "px");  
    $("div#over").css("left", X + "px");  
    $("div#over").html(data.name);  
},

代码

<table id=maptable border=2>
<th>
<div id="map_canvas" style="height:500px; width:700px; background-color:white; border:1px solid black; "></div>
<div id="over"></div>
</th>
4

2 回答 2

2

试试这个(使用offset()):

featureOver: function(ev,latlng,pos,data)   
{  
    var X = pos.x;  
    var Y = pos.y;  
    alert('X = ' + X + '  ' + 'Y = ' + Y);    
    document.body.style.cursor = "pointer";  
    $("div#over").offset().top =  Y + "px";  
    $("div#over").offset().left =  X + "px";  
    $("div#over").html(data.name);  
}
于 2012-07-01T18:46:26.113 回答
0

这取决于您的 div#over 的位置。有关位置:绝对和位置:相对的 CSS 中的“顶部”和“底部”属性如何工作的说明,请参见此处。

对于绝对定位的元素(具有 position : absolute 或 position : fixed 的元素),它指定元素的上边距边缘与其包含块的上边缘之间的距离。

对于相对定位的元素(具有 position : relative 的元素),它指定元素在其正常位置下方移动的量。

https://developer.mozilla.org/en/CSS/top

于 2012-07-01T18:50:20.010 回答