虽然不知何故,有几个问题与我的问题有关,这就是我的问题不同的原因。使用Phonegap,我有index.html
和gmap.html
。在我的index.html
上,我的href包含参数:
示例:gmap.html?&name=Agustina%20Apartments&lat=14.625486&lng=121.02333099999998
我能够解析参数并在地图上放置标记。但是,我想在标记上分配一个onclick。我有这段代码:
google.maps.event.addListener(marker, 'click', callNumber('84'));
现在,我要做的是当用户点击标记时,将在电话的拨号器上打开随附的contact_number,以便用户可以呼叫该机构。我有一个代码,使用url中的坐标设置标记。我尝试将其置于onSuccess
方法的navigator.geolocation.watchPosition
回调中,超时为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');
}
感谢那些帮助我的人。
答案 0 :(得分:2)
提供一个函数作为回调,而不是函数调用(除了调用返回另一个函数):
google.maps.event.addListener(estabMarker, 'click', function(){callNumber('84');});