Теперь, видя ответы выше, все знают, что мы не можем переопределять статические методы, но не следует неправильно понимать концепцию доступа к статическим методам из подкласса.
Мы можем получить доступ к статическим методам супер класс с подклассом, если этот статический метод не был скрыт новым статическим методом, определенным в подклассе.
Пример, см. ниже код: -
public class StaticMethodsHiding { public static void main(String[] args) { SubClass.hello(); } } class SuperClass { static void hello(){ System.out.println("SuperClass saying Hello"); } } class SubClass extends SuperClass { // static void hello() { // System.out.println("SubClass Hello"); // } }
Выход: -
SuperClass saying Hello
См. Java oracle docs и поиск Что вы можете сделать в подклассе для получения дополнительной информации о скрытие статических методов в подклассе.
Спасибо
mapboxgl.Marker
реализованы в виде простых HTML <div>
элементов. Вы можете присоединить к ним стандартный прослушиватель событий и вручную переключать всплывающее окно:
const marker = new mapboxgl.Marker({/* options */});
const markerDiv = marker.getElement();
markerDiv.addEventListener('mouseenter', () => marker.togglePopup());
markerDiv.addEventListener('mouseleave', () => marker.togglePopup());
См. Документы: https://docs.mapbox.com/mapbox-gl-js/api/#marker# getelement
РЕДАКТИРОВАТЬ: Предотвращение открытия всплывающего окна при щелчке
Я пытался провести некоторое тестирование, и единственное, что надежно работает, это вызвать marker.togglePopup()
в ваш собственный обработчик кликов
map.on('click', event => {
const target = event.originalEvent.target;
const markerWasClicked = markerDiv.contains(target);
marker.togglePopup();
});
Полный пример: https://jsfiddle.net/am2jwtzg/