谷歌地图点击潜水触发信息窗口

Google Maps Clicking on a Div to Trigger InfoWindow

本文关键字:信息 信息窗 窗口 潜水 谷歌地图      更新时间:2023-09-26

好吧,我在这里尝试了很多例子,但我似乎无法获得信息窗口来获得正确附加的元素。我确信这是我如何构建的,这是完全错误的。

我制作了自己的边栏,看看这个:http://koti.mbnet.fi/ojalesa/boundsbox/makemarker_sidebar.htm这应该是可能的。但我看不出与我的代码有什么不同。

这是我的AddMarker和AddSidebar函数

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函数什么都不做,我缺少什么?

谢谢!

您可以尝试这样的操作,我认为问题出在字符串连接上。

这里有另一种创建dom元素的方法:

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

普通旧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);
}