Я пытаюсь создать класс javascript-оболочки для листовки.Мне нужно привязать события щелчка к карте (и рядом с кнопками внутри всплывающих окон), и я, честно говоря, понятия не имею, как это сделать.Может ли кто-нибудь дать некоторые рекомендации.Я не могу заставить метод класса selectorClick () работать вообще.Я должен быть в состоянии передать параметры также.Я был бы признателен за любую помощь, которую вы могли бы предоставить.
Код @ https://codepen.io/hendr1x/pen/GRKLjrW
class Map {
self = this;
name = '';
elem;
theme = 'http://b.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png';
constructor(name) {
self.name = name;
self.elem = L.map(name).fitWorld().zoomIn();
L.tileLayer(this.theme, {
attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',
maxZoom: 18,
}).addTo(self.elem);
}
selector(url, message) {
self.elem.on("click", self.selectorClick(url, message));
}
selectorClick(url, message) {
alert(message);
}
}
var mapMap = new Map('map');
mapMap.selector('/index.php', 'test message');
РЕДАКТИРОВАТЬ:
Позвольте мне объяснить, что приведенный мной пример снял много сложностииз моей реальной ситуации, потому что я храню много на сервере данных .... так что для того, что мы смотрим на текущий, у меня есть что-то вроде этого в моем контроллере
$this->c->map->init('mapElem');
$this->c->map->selector('/example/submit/index.php', 'You clicked this example');
which eventually echo's the following
echo "window." . $name . "Map = new Map('" . $name . "');";
echo $name . "Map.selector('" . $url . "', '" . $message . "');";
Так что с этим в уме япытаясь запустить столько кода через внешний файл js и отправить все динамические значения, как я его использую (как я делал выше).Поэтому, чтобы ответить на ваш вопрос, мне нужно передать URL-адрес и сообщение, чтобы при нажатии на карту у меня были данные для правильного создания всплывающего окна.