2012-09-11 105 views
0

好的,我已经在这里试过了大量的例子,我似乎无法得到信息窗口来正确地附加元素。我确信这是与我如何构建这是完全错误的。谷歌地图点击触发信息窗口InfoWindow

我已经做了我自己的侧边栏,看看这个:http://koti.mbnet.fi/ojalesa/boundsbox/makemarker_sidebar.htm它应该是可能的。但我看不到我的代码有什么不同。

因此,这里是我的AddMarker并添加侧边栏功能

function addMarker(location, name, content) { 

     console.log("Adding Marker: "+location) 
     if (name === "Patient"){ 
      var patient_icon = '<?php echo base_url();?>images/Profile.png'; 
      var marker = new google.maps.Marker({ 
       position: location, 
       map: map, 
       title: name, 
       icon: patient_icon 
      }); 
     }else{ 
      var marker = new google.maps.Marker({ 
       position: location, 
       map: map, 
       title: name 
      }); 
     } 
     markersArray.push(marker); 
     var info = new google.maps.InfoWindow ({content: content}) 
     google.maps.event.addListener(marker, 'click', function(){info.open(map,marker);}); 
     if (name != 'Patient'){ 
      sidebar(name, marker, content) 
     } 
    } 

function sidebar(name, marker, content){ 
    name = name.replace(/\s+/g, ''); 
    $("<div id='"+name+"'class='even' onclick=' function(){google.maps.event.trigger("+marker+", \"click\")' >"+content+"</div>").appendTo($('#prov_list')); 
} 

我缺少的是在侧边栏元素的onclick函数什么都不做?

谢谢!

回答

2

你可以尝试这样的事情,我认为问题是与字符串连接。

这里的另一种方式来创建DOM元素:

 $("<div/>", { 
      'id': name, 
      'class': 'even', 
      'html': content 
     }).click(function(){ 
      google.maps.event.trigger(marker, 'click'); 
     }).appendTo($('#prov_list')); 
+0

你是一个赢家!非常感谢!现在要弄清楚如何在另一个打开之前关闭打开的信息窗口! = P – DiscontentDisciple

0

普通老式DHTML:

function sidebar(name, marker, content){ 
    var container = document.getElementById('prov_list'); 
    var myDiv = document.createElement('DIV'); 
    myDiv.onclick = function(){ 
    google.maps.event.trigger(marker, 'click'); 
    } 
    myDiv.innerHTML = content; 
    container.appendChild(myDiv); 
}