Как запустить событие dragend маркера в Google Maps v3?

Я хочу запустить событие dragend маркера в другом событии, например, событие щелчка на карте. Как мне это сделать?

google.maps.event.addListener(map,'click',function(pt){
   posSelectMarker.setPosition(pt.latLng);
   //Here I want to fire dragend event.
});

person Morteza Milani    schedule 26.06.2010    source источник


Ответы (4)


Используйте event.trigger;

google.maps.event.trigger(markerObject, 'dragend', args);
person TheDeadMedic    schedule 26.06.2010
comment
Почему? Обратный вызов события должен знать, какой маркер! - person TheDeadMedic; 27.10.2016

Это немного более полно:

theListener = google.maps.event.addListener(posSelectMarker,'dragend',function(event){
    console.log(event.latLng);
});

Обратите внимание, что вы можете добраться до объекта с параметром события

person rynop    schedule 09.01.2013
comment
это не ответ. вы добавляете слушателя вместо его выполнения - person Vasilii Suricov; 14.02.2019

Должно быть:

google.maps.event.addListener

вместо:

google.maps.event.trigger

Быстрый пример:

google.maps.event.addListener(marker_var_name, 'dragend', function(){
    alert('drag ended')
});
person Nathan A Haskins    schedule 20.08.2012
comment
запуск означает запуск события вручную. addListener используется для прослушивания события. - person Morteza Milani; 24.10.2012

Если у вас есть объект-маркер, вы можете вызвать addListener напрямую, чтобы добавить событие dragend.

var marker = new google.maps.Marker({
    ...
)};

marker.addListener('dragend', function() {
    // do something
});
person Syakur Rahman    schedule 04.06.2016