Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图api v3-通过外部点击打开信息窗口_Javascript_Jquery_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图api v3-通过外部点击打开信息窗口

Javascript 谷歌地图api v3-通过外部点击打开信息窗口,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,我有一个V3地图,初始化如下: function init() { var mapCenter = new google.maps.LatLng(51.5081289,-0.128005); var map = new google.maps.Map(document.getElementById('map'), { 'zoom': 6, 'center': mapCenter, 'mapTypeId':

我有一个V3地图,初始化如下:

function init() {
        var mapCenter = new google.maps.LatLng(51.5081289,-0.128005);
        var map = new google.maps.Map(document.getElementById('map'), {
          'zoom': 6,
          'center': mapCenter,
          'mapTypeId': google.maps.MapTypeId.ROADMAP, 
          panControl: false,
          mapTypeControl: false,
          zoomControl: true,
          zoomControlOptions: {
                style: google.maps.ZoomControlStyle.SMALL,
                position: google.maps.ControlPosition.LEFT_TOP
            },
        });
var marker25837500 = new google.maps.Marker({
              map: map, 
              pop_title: 'blah blah',                                                                                                 
              pop_wind: 'more blah',
                      zIndex: 999,
              icon: 'images/map_icons/s6.png'
            }); 
            google.maps.event.addListener(marker25837500, 'click', onMarkerClick);
还有一堆看起来像这样的标记:

function init() {
        var mapCenter = new google.maps.LatLng(51.5081289,-0.128005);
        var map = new google.maps.Map(document.getElementById('map'), {
          'zoom': 6,
          'center': mapCenter,
          'mapTypeId': google.maps.MapTypeId.ROADMAP, 
          panControl: false,
          mapTypeControl: false,
          zoomControl: true,
          zoomControlOptions: {
                style: google.maps.ZoomControlStyle.SMALL,
                position: google.maps.ControlPosition.LEFT_TOP
            },
        });
var marker25837500 = new google.maps.Marker({
              map: map, 
              pop_title: 'blah blah',                                                                                                 
              pop_wind: 'more blah',
                      zIndex: 999,
              icon: 'images/map_icons/s6.png'
            }); 
            google.maps.event.addListener(marker25837500, 'click', onMarkerClick);
最后,我有一个功能,可以在单击每个maker时打开信息窗口:

var infoWindow = new google.maps.InfoWindow;

var onMarkerClick = OpenInfoWindow;

function OpenInfoWindow() {
          var marker = this;
          infoWindow.setContent('<h3>' + marker.pop_title + '</h3>' +
                                         marker.pop_body);

          infoWindow.open(map, marker);
        };
        google.maps.event.addListener(map, 'click', function() {
          infoWindow.close();
        }); 
var infoWindow=new google.maps.infoWindow;
var onMarkerClick=OpenInfoWindow;
函数OpenInfoWindow(){
var标记=这个;
infoWindow.setContent(“”+marker.pop_title+“”)+
标记器(弹体);
信息窗口。打开(地图、标记);
};
google.maps.event.addListener(映射,'click',函数(){
infoWindow.close();
}); 
我的问题是,我需要做什么才能使一个特定的标记(比如marker25837500)在点击页面内部时显示其信息窗口?可能类似于:

<div id="marker25837500">click to see infoWindow!</div>
点击查看信息窗口!
我相信这很容易,但我能看穿它


谢谢

您可以使用
触发器
事件

$('#marker25837500').click(function () {
    google.maps.event.trigger(marker25837500, 'click')
})
检查这个-


编辑:还注意到,当单击
MarkerClick()
时,您正在调用
onMarkerClick()
,但您将另一个函数命名为
OpenInfoWindow()
,因此您可能也需要更改该函数。

您不必做任何异常操作或在标记上模拟
单击
;只需确保可以访问
OpenInfoWindow
功能:

//This is the simple case:
var myDiv = document.getElementById( "marker25837500" );
google.maps.event.addDomListener( myDiv, "click", OpenInfoWindow );

//Or if you have other things that you want to accomplish when this occurs:
var myDiv = document.getElementById( "marker25837500" );
google.maps.event.addDomListener( myDiv, "click", function() {
    OpenInfoWindow();
    //Do other stuff here
});

只要
InfoWindow
在范围内(调用
OpenInfoWindow
函数时可以访问),这应该可以正常工作。

hmm-一直在玩它,它似乎不喜欢它。添加:$(#marker25837500').click(函数(){google.maps.event.trigger(marker25837500,'click');alert(“hello”);};还添加了一个id正确的div。会弹出警报,但地图上什么也没发生。。。有指针吗?你能在这个函数中
alert(marker25837500)
并检查
marker25837500
-标记变量本身是否在范围内吗?是-警报给我[object htmldevelment]-这样看起来没问题。此外,我还错过了OpenInfoWindow上面的几行,我现在已经添加到。。。谢谢。该警报应该显示一个标记对象-引用您的代码
var marker25837500=new google.maps.marker({…
),因此其他内容出错。是的-未捕获引用错误:未定义marker2583750x-我没有声明它是对的吗?谢谢。。。