Я использую Leaflet для рисования карты, во всплывающих окнах я добавил ссылку, которая должна вести к более подробному описанию, описание отделено от карты и организовано в список с помощью аккордеона, поэтому каждое описание скрыто.
Я могу использовать привязку для ссылки на содержимое аккордеона, но мне нужно выполнить некоторый JavaScript onclick
, поэтому я пытаюсь добавить click
обработчик событий -, он не работает.
Вот мой код:
Leaflet Quick Start Guide Example
List made using JQuery UI accordion, every element is hidden, only on hover it opens, you can click on it to display on map, reverse cliking on map should aopen accordion list description (this), it's currently done using permalinks because I cannot catch click event on a or span tag.
Ioff :: **** ***
Detailed data
Us sb :: **** ***
Detailed data
Ioff :: **** ***
Detailed data
Us sb :: **** ***
Detailed data
вы можете проверить это на JS Fiddle
Я сообщил об этом как об ошибке на github разработчику Leaflet здесь и здесь , но он закрыл ошибку, ответив, что это не проблема, и я могу использовать другойclass
-что не работает.
Изменить :Я тоже нашел кое-что самостоятельно:http://jsfiddle.net/M5Ntr/12/ Но все же есть проблема, потенциально может быть 500 точек, поэтому хотелось бы иметь как можно меньше кода, я пытался создать функцию, но не могу передать переменные:(
это работает
point["point_111_11"] = new L.Marker(new L.LatLng(51.4800166666667,-0.43673)).bindPopup("Ioff
**** ***").on('click', function (e) { console.log("clicked (Try to open Accordion): " + e.target) });
но это предпочтительнее (не работает):
point["point_111_11"] = new L.Marker(new L.LatLng(51.4800166666667,-0.43673)).bindPopup("Ioff
**** ***").on('click', myfunction('point_111_11'));
function myfunction(seclectedId){
//do something with seclectedId
console.log(seclectedId)
}
или даже
point["point_111_11"] = new L.Marker(new L.LatLng(51.4800166666667,-0.43673)).bindPopup("Ioff
**** ***").myBindFunction('point_111_11')
что будет делать.on ('щелчок' )или что-то подобное внутри...