【发布时间】:2014-07-24 19:42:54
【问题描述】:
我有一张使用 Gmap3 和 RichMarker 的地图,而且大部分情况下它都可以工作。唯一需要注意的是,您不能将鼠标悬停在或单击标记或集群。我认为这是一个简单的 CSS 问题,但事实并非如此。即使您将鼠标悬停在标记上,光标也不会改变,如下图所示:http://imgur.com/oSQbXiI。
标记的代码从第 133 行(或问题下方)开始:https://gist.github.com/anonymous/d94d4476875cf58413b2#file-map-javascript-php-L133
我无法弄清楚为什么光标甚至不会改变。即使在普通的谷歌地图上,当您将鼠标悬停在标记上时,光标也会变为指针。 :/
,marker: {
values: [
{foreach $items as $item}
{
latLng: [{ifset $item->optionsDir['gpsLatitude']}{!$item->optionsDir['gpsLatitude']}{else}0{/ifset},{ifset $item->optionsDir['gpsLongitude']}{!$item->optionsDir['gpsLongitude']}{else}0{/ifset}],
data: '<div class="marker-holder"><div class="marker-content{ifset $item->thumbnailDir} with-image"><a href="{!$item->link}"><img src="{thumbnailResize $item->thumbnailDir, w => 280, h => 160}" alt="">{else}">{/ifset}<div class="map-item-info"><div class="title">$'+{ifset $item->optionsDir["price"]}{$item->optionsDir["price"]}+{/ifset}' <small>{!$item->rooms}bd/{!$item->baths}ba</small></div><div class="address">'+{ifset $item->optionsDir["address"]}{$item->optionsDir["address"]|nl2br}+{/ifset}',<br>'+{ifset $item->optionsDir["address2"]}{$item->optionsDir["address2"]|nl2br}+{/ifset}'</div><div class="timestamp">{!$item->time}</div></div></a><div class="arrow"></div><div class="close">x</div></div></div></div>'
}
{if !($iterator->last)},{/if}
{/foreach}
],
options:{
draggable: false,
content: "<div class='cluster-bg'><div class='cluster'><span>1</span></div></div>",
width: 44,
shadow: 0,
height: 44
},
cluster:{
radius: 100,
// This style will be used for clusters with more than 0 markers
0: {
content: "<div class='cluster-bg'><div class='cluster cluster-1'><span>CLUSTER_COUNT</span></div></div>",
width: 44,
height: 44
},
events: {
click: function(cluster) {
map.panTo(cluster.main.getPosition());
map.setZoom(map.getZoom() + 2);
},
mouseover: function(cluster) {
$(cluster.main.getDOMElement()).find('.cluster-bg').css('padding', '10px 10px');
$(cluster.main.getDOMElement()).find('.cluster-bg').css('margin', '-4px 0 0 -4px');
$(cluster.main.getDOMElement()).find('.cluster-bg').css('background-color', 'rgba(0,0,0,0.2)');
$(cluster.main.getDOMElement()).find('.cluster').css('background-color', '#343434');
},
mouseout: function(cluster) {
$(cluster.main.getDOMElement()).find('.cluster-bg').css('padding', '6px');
$(cluster.main.getDOMElement()).find('.cluster-bg').css('margin', '0');
$(cluster.main.getDOMElement()).find('.cluster-bg').css('background-color', 'rgba(0,0,0,0.15)');
$(cluster.main.getDOMElement()).find('.cluster').css('background-color', 'rgba(85, 151, 183, 1.0)');
}
}
},
events: {
click: function(marker, event, context){
map.panTo(marker.getPosition());
infobox.setContent(context.data);
infobox.open(map,marker);
// if map is small
var iWidth = 260;
var iHeight = 300;
if((mapDiv.width() / 2) < iWidth ){
var offsetX = iWidth - (mapDiv.width() / 2);
map.panBy(offsetX,0);
}
if((mapDiv.height() / 2) < iHeight ){
var offsetY = -(iHeight - (mapDiv.height() / 2));
map.panBy(0,offsetY);
}
}
}
}
【问题讨论】:
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及重现它所需的最短代码 在问题本身。
-
所以链接到 Gist 是不可接受的?
-
因为 Gist != 问题本身的代码,没有。原因是如果你决定删除你的 gist 代码,这个问题对未来的读者来说完全没用。
-
我修好了。谢谢!
-
点击时显示什么?有什么错误吗?如果在 click 事件中添加 console.log 会怎样?
标签: javascript jquery css google-maps google-maps-api-3