Почему эта кнопка в элементе листовки L.control() не работает?Javascript

Форум по Javascript
Anonymous
Почему эта кнопка в элементе листовки L.control() не работает?

Сообщение Anonymous »

Я хочу добавить кнопку закрытия в информационное окно L.control() для карты LeafletJS:

Код: Выделить всё

let map;

map = L.map("map").setView([45.0, 0.0], 8);

var tiles = L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png", {
maxZoom: 19,
}).addTo(map);

let info = L.control();

info.onAdd = function (map) {
this._div = L.DomUtil.create("div", "info");

var button = L.DomUtil.create('button', 'close-btn', this._div);
button.innerHTML = 'x';
button.style.float = 'right';

button.addEventListener('click', function() {
console.log('buttonClicked event');
info.buttonClicked();
});

this._div.innerHTML += "some info";

return this._div;
};

info.buttonClicked = function() {
console.log('info.buttonClicked() called');
//this._div.innerHTML += '';
};

info.addTo(map);

(полный пример здесь), но кажется, что нажатие кнопки ни к чему не приводит. Я перепробовал кучу версий (см. закомментированный код), но безуспешно.
Ошибок не вижу, но и консоли не вижу. log() тоже вызывает.
Я пробовал использовать L.DomEvent для привязки нажатия к buttonClicked():

Код: Выделить всё

L.DomEvent.on(button, 'click', function() {
info.buttonClicked();
});
Я также попробовал создать кнопку с помощью const newButton = document.createElement('button'); вместо L.DomUtil.create().
Я также попробовал создать кнопку с помощью const newButton = document.createElement('button'); вместо L.DomUtil.create().
p>
Проверил это в множестве разных браузеров. По-прежнему безуспешно.
Почему?

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-not-work

Вернуться в «Javascript»