Хотя почему-то есть несколько вопросов, связанных с моим вопросом, вот почему мой вопрос отличается. Используя Phonegap, у меня есть index.html
и gmap.html
. На моем index.html
мой HREF содержит параметры:Добавить событие onclick на маркер Google Maps v3
пример: 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');
}
Спасибо за тех, кто мне поможет.
'Поставка функции в качестве обратного вызова, а не функция вызова (кроме вызова возвращает другую функцию) «Одного предложения достаточно. Удивительно. Спасибо, сэр. – Jeongbebs
Могу ли я спросить, почему вызов функции не работает, давая ей 'function'? – Jeongbebs
Функция будет выполняться, когда событие было запущено, но вызов функции будет выполнен незамедлительно (когда браузер оценивает конкретную строку/оператор) –