Есть функция прослушки DOM на изменение
$(document).ready(function() {
$('#map').on('DOMSubtreeModified', function(event) {
if (event.target.className == "ymaps-2-1-72-balloon__content") {
imp();
}
});
});
В итоге DOMSubtreeModified находит изменение в 3х одинаковых классах и запускает функцию imp() 3 раза. А мне нужно запустить только 1 раз.
Пробовал event.target.className[0] не помогает.
Может return в нужном месте прекратить работу DOMSubtreeModified или есть какая служебная функция для остановки.
как сказали в комментариях, это событие – deprecated.
Решить проблему можно просто
let listener = function(event) {
if (event.target.className == "ymaps-2-1-72-balloon__content") {
imp();
map.off('DOMSubtreeModified.EXAMPLE_NAMESPACE')
}
}
$(document).ready(function() {
const map = $('#map')
map.on('DOMSubtreeModified.EXAMPLE_NAMESPACE',listener);
});
при необходимости заново навесить слушатель - вызываем в нужном месте опять конструкцию
map.on('DOMSubtreeModified.EXAMPLE_NAMESPACE',listener);
следует учитывать, что такое отключение событий отключит все слушатели DOMSubtreeModified, подписанные на namespace DOMSubtreeModified.EXAMPLE_NAMESPACE
неплохая статья - https://css-tricks.com/namespaced-events-jquery/
Оказалось, обработчик открытого балуна делается просто (умные люди подсказали).
myMap.balloon.open(coords, {
//здесь доработать код вывода формы ввода
contentBody: '<div id="forma"><button type="submit" class="btn btn-success">Сохранить</button></div>'
}).then(myfunc)
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть заполненная данными таблица InnoDB в mySQLДля таблицы заданы несколько индексов
Есть таблица dle_post, нужно вставить в столбец xfields значение при условии, что в category есть значение "1"Как организовать?