【问题标题】:Add an onclick event on a marker Google Maps v3在标记 Google Maps v3 上添加 onclick 事件
【发布时间】:2014-11-06 06:45:30
【问题描述】:

尽管不知何故,有几个问题与我的问题有关,这就是我的问题不同的原因。使用Phonegap,我有一个index.htmlgmap.html。在我的index.html 上,我的 href 包含参数:

示例:gmap.html?&name=Agustina%20Apartments&lat=14.625486&lng=121.02333099999998

我能够解析参数并在地图上放置一个标记。但是,我想在标记上分配一个 onclick。我有这个代码:

google.maps.event.addListener(marker, 'click', callNumber('84'));

现在,我要做的是,当用户单击标记时,将在电话的拨号器上打开随附的联系人号码,以便用户可以呼叫该机构。我有一个代码,它使用来自 url 的坐标设置一个标记。我试图将它放在我的navigator.geolocation.watchPosition 方法的onSuccess 回调中,超时时间为5 秒。发生的情况是每 5 秒,拨号器将显示电话号码(因为超时)。但是,当我单击标记时,什么也没有发生。我尝试将它放在我的initialize() 函数中,但它在显示地图之前显示了拨号器,并且标记无法检测到点击事件。

下面是更详细的代码:

function initialize() {
    var mapOptions = {
    zoom: 14,
    center: new google.maps.LatLng(14.6333, 121.0333)
   };


    map = new google.maps.Map(document.getElementById('map-canvas'),
        mapOptions);

  var estabCenter = new google.maps.LatLng(lat,lng);
  var estabMarker = new google.maps.Marker({
    map: map,
    position: estabCenter
  });
  var estabCircle = new google.maps.Circle({
    map: map,
    strokeColor: '#FF0000',
      strokeOpacity: 0.8,
      strokeWeight: 2,
    center: estabCenter
  });

  estabCircle.setRadius(100);

  google.maps.event.addListener(estabMarker, 'click', callNumber('84'));
// Try HTML5 geolocation
if(navigator.geolocation) {
  mapAutoUpdate();
  } else {
  // Browser doesn't support Geolocation
  handleNoGeolocation(false);
  }
}

function callNumber(number){
    window.open('tel:'+number+'', '_system');
}

感谢那些愿意帮助我的人。

【问题讨论】:

    标签: javascript google-maps cordova google-maps-api-3


    【解决方案1】:

    提供一个函数作为回调,而不是函数调用(调用返回另一个函数除外):

    google.maps.event.addListener(estabMarker, 'click', function(){callNumber('84');});
    

    【讨论】:

    • Supply a function as callback, not a function-call(except the call returns another function) 一句话就够了。惊人。谢谢先生。
    • 我可以问一下为什么在给它一个 function 的同时调用函数不起作用?
    • 触发事件时会执行函数,但会立即执行函数调用(当浏览器评估特定行/语句时)
    猜你喜欢
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 2013-03-06
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多