Здравствуйте. Имеется достаточно не хорошая jQuery конструкция (изменять которую не вариант (сразу говорю.)).
Имеется функция, которая может вызываться несколько раз, все блоки грузятся по ajax.
// Сама функция
function getMapBlock() {
...
...
if(block == "yandex_map") {
...
...
ymaps.ready(function () {
// Клик на кнопку, которая находится ЗА пределами яндекс карты. Просто ссылка в футере например
// Находится внутри функции и ymaps т.к. нужно управлять myMap.
$(document).on('click', '.addMapInfo', function() {
...
...
myMap.container.fitToViewport();
...
...
console.log('click');
});
}
}
}
В такой конструкции если функция
getMapBlock()
вызвалась например 5 раз, то при клике на кнопку
.addMapInfo
клик произойдет тоже 5 раз. (в console.log() будет выведено 5 сообщений 'click');
Понятно, что есть такие методы, как
$(element).unbind
и т.д. НО т.к. все блоки грузятся по ajax (изначально их в коде нету), то необходимо использовать именно
$(document).on('click', 'element', function() {
Как решить такую задачку?