Google Maps API V3 - добавление слушателя на маркеры после их создания - PullRequest
2 голосов
/ 19 сентября 2011

У меня проблема. Я делаю карту, где вы можете добавлять маркеры, полилинии и полигоны, используя «инструменты». Как MS Paint и инструменты там. Вы нажимаете на инструмент, а затем делаете все, что хотите на карте.

Дело в том, что я добавляю маркеры без каких-либо слушателей, поэтому я не могу щелкнуть их - потому что я хочу, чтобы этот инструмент просто помещал маркер в выбранное место.

И моя проблема в том, чтобы создать инструмент, который позволил бы мне удалить эти маркеры. Но чтобы сделать это, мой инструмент должен был бы добавить прослушиватель событий щелчка к маркерам ... и они были созданы некоторое время назад. Это возможно? Потому что, когда я пытаюсь просто сделать addeventlistener (marker, 'click, xxx ()), я получаю сообщение об ошибке, что маркер не определен.

Я не буду публиковать здесь весь код, потому что его много, но если вам нужна какая-то часть, просто спросите, я выложу его как можно скорее.

EDIT1:

Как сказал Маджид Фуладпур, глобальная переменная работает, но только для последнего добавленного маркера: o?

1 Ответ

3 голосов
/ 20 сентября 2011

Вам нужно сделать marker глобальной переменной.Теперь вы определяете его внутри функции:

function somefunction(params) {
    ...
    var marker = ....
    ...
}

Вместо этого вы должны иметь:

var marker;
...

function somefunction(params) {
    ...
    marker = ....
    ...
}

ОБНОВЛЕНИЕ

Ваш комментарий показывает вамсейчас получаю справочную часть правильно.Если ваша функция не запущена, у вас должна быть проблема в вашей части добавления слушателя кода.Вы делаете это таким образом?

google.maps.event.addListener(marker, 'click', function() {
    alert('x');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...