如果和其他谷歌地图点击事件

时间:2016-01-11 05:55:31

标签: javascript jquery google-maps

我为来自数据库的每个位置设置了Google标记,现在当用户点击任何图标时,我通过替换活动标记图像来设置该图标处于活动状态。

但是当第一次加载页面时,我想在特定位置设置活动图标,这是我的代码。

    google.maps.event.addListener(marker, 'click', function() 
                    {

                     for( var m in $.bgmp.markers )
                        $.bgmp.markers[ m ].setIcon('http://guipme.npmdemo.com/wp-content/uploads/2015/12/marker_img.png');
})        
例如,我说有4个地点印度巴基斯坦,斯里兰卡和孟加拉国。对于每个图标我设置默认img但是当用户点击说india时我正在向印度添加活动图标。相似我想在页面加载时将默认情况下添加到孟加拉国的活动图标我该怎么做?

我是否需要使用if else进行点击和取消点击?

2 个答案:

答案 0 :(得分:1)

根据谷歌开发人员的讨论,我得到了答案我们无法点击和取消点击,或者如果我的案例的条件是google.maps.event.addDomListener(窗口,“加载”,函数(){},则无法添加)如果点击将不会工作。 我从谷歌讨论得到了非常有趣的东西我将在页面加载时添加我的非活动图标,因此有窗口加载功能。

    google.maps.event.addDomListener(window, "load",function(){
                        var lastPart = window.location.hash.substr(1);
                        alert("hi"+lastPart+marker['title']);
                        if (marker['title']==lastPart) { 
                     marker.setIcon('../uploads/2015/12/pme_inter_notaires_gcl_location_large.png');    
    }
})

这解决了我的问题,我提供了添加默认行为并在点击时更改此默认行为。

答案 1 :(得分:0)

可能的解决方案可能是用于存储实际活动标记的全局变量

var myActiveMarker;

在初始阶段,您应该显示您想要激活的标记,并将此标记设置为myActiveMarker var for store

 function init() {

  myInitMarker  = new google.maps.Marker({
               .....
  });

  myActiveMarker = myInitMarker;


 } 

然后在你的听众中简单地打开/关闭相关标记

google.maps.event.addListener(marker, 'click', function() {

   myActiveMarker.setIcon('your_icon_not_active');
   marker.setInco('your_icon_active');
   myActiveMarker = marker

})