Google地图单击Div以触发InfoWindow

时间:2012-09-11 19:22:58

标签: javascript google-maps

好的,我在这里尝试了大量的例子,我似乎无法让Info Windows正确地附加元素。我确信这是我的结构,这是完全错误的。

我已经制作了自己的补充工具栏,看着这个: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 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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);
}