Распространение событий двойного щелчка на карте Google

Этот вопрос часто задают, но так и не получили хорошего ответа. Позволять'посмотрим, сможем ли мы исправить это!

Распространение событий

Google позволяет привязывать к событиям в представлении карты Google через ихAPI с помощьюобработчики событий.

Иногда вы можете привязать ваш обработчик событий к событию, которое Googleсам уже связан с. Таким образом, когда ваше событие запускается и делает то, что вы сказали, вы можете обнаружить, что Google также делает свою собственную маленькую вещь в то же время.

Хм, могу ли я обработать событие, чтобы мой код запускался, но остановил продолжение события и запустил Google 'обработчик событий?

Вы уверены, что можете! Добро пожаловать вEvent Propagation (он же Event Bubbling).

Посмотрите на этот код

Здесь я привязываю обработчик событий к двойному щелчку на карте Google:

var aListener = google.maps.event.addListener(map, 'dblclick', function(event) {
    // Try to prevent event propagation to the map
    event.stop();
    event.cancelBubble = true;
    if (event.stopPropagation) {
        event.stopPropagation();
    }
    if (event.preventDefault) {
        event.preventDefault(); 
    } else {
        event.returnValue = false;  
    }
});

Вотmap объект Google Map для привязки

Это нет работа. Событие вспыхивает, и карта увеличивается. Я нене знаю почему.

Вы спрашиваете, вы читали документацию?

В самом деле.документация говорит использоватьevent.stop();

Я посмотрел на то, что говорят другие.Эта проблема это точно моя проблема. Он был помечен как исправленный, но решение не работает.

Идеи?

Временное решение

Возможный обходной путь для события двойного клика - отключить Google.Поведение по умолчанию, когда вам нужно, чтобы оно не срабатывало, а затем включите его позже.

Вы делаете это сdisableDoubleClickZoom аргумент. Смотри документациюВот.

Вот код для отключения:

map.set("disableDoubleClickZoom", true);

Теперь, чтобы снова включить:

map.set("disableDoubleClickZoom", false);

Конечно, вы можете установить свойство вMapOptions аргумент, когдаmap Объект создается в первую очередь.

Ответы на вопрос(2)

Ваш ответ на вопрос