Как я могу реорганизовать этот код JS, который выбирает текущее местоположение пользователя? - PullRequest
0 голосов
/ 11 мая 2019

Я не лучший в JS, и у меня есть этот код, который выбирает текущие координаты пользователя с помощью API геолокации. Первоначально он должен был работать со многими различными кнопками, но теперь есть только одна кнопка, поэтому нет необходимости перебирать массив. Как я могу изменить этот код, чтобы отразить это?

var locations = ["coordinatesStore"]
  .map(id => document.getElementById(id));

Array.prototype.forEach.call(
  document.querySelectorAll('.add-button'),
  (button, i) => {
    button.addEventListener('click', () => getLocation(i));
  }
);

function getLocation(i) {
  var location = locations[i];
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(({ coords: { latitude, longitude }}) => {
      location.value = latitude + ", " + longitude;
    });
  } else { 
    location.value = "Geolocation is not supported by this browser.";
  }
}

1 Ответ

1 голос
/ 11 мая 2019

Просто определите один location и добавьте одного слушателя к одному .add-button с помощью querySelector:

const location = document.getElementById('coordinatesStore');
document.querySelector('.add-button').addEventListener('click', () => {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(({ coords: { latitude, longitude }}) => {
      location.value = latitude + ", " + longitude;
    });
  } else { 
    location.value = "Geolocation is not supported by this browser.";
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...