У меня есть кнопка, где я подключил onclick к вызову, чтобы получить местоположение пользователя, а затем использую это местоположение, чтобы сделать еще один вызов, чтобы получить список близлежащих местоположений. По какой-то причине метод успешного определения географического местоположения вызывается дважды при втором нажатии кнопки.
Итак, я загружаю страницу, нажимаю кнопку, разрешаю разрешение использовать мое местоположение, и он сделает один ajax-запрос, чтобы получить ближайшие местоположения. Это отлично работает.
Я нажимаю кнопку еще раз, разрешаю разрешение использовать мое местоположение (снова), он сделает один ajax-запрос, чтобы получить местоположения, подождет ~ 2 секунды, а затем сделает другой запрос, используя те же координаты, без моего разрешения. Поэтому метод успеха должен вызываться дважды, но я не уверен, почему.
$("#FindLocation").click(function () {
myScript.findNearbyLocations(displayData, displayError);
});
Эта функция щелчка вызывается не дважды, и я закомментировал весь код в displayData и displayError.
findNearbyLocations: function (onSuccess, onFailure) {
if (navigator.geolocation) {
browserSupportFlag = true;
navigator.geolocation.getCurrentPosition(function (position) {
alert('This is getting called twice except on the initial call.');
myScript.findStores(position.coords.latitude, position.coords.longitude, onSuccess, onFailure);
}, function () {
onFailure(true);
});
}
}
Кто-нибудь видит, где я ошибся?
Редактировать: я не думаю, что проблема в разметке. Я использую только основные веб-страницы для тестирования. На данный момент нет стиля или других элементов.
<form id="form1" runat="server">
<div>
<MyControls:Search ID="Search" runat="server" />
</div>
</form>
и пользовательский элемент управления (вместе со всем необходимым javascript включает в себя)
<script type="text/javascript">
$(document).ready(function () {
$("#FindLocation").click(function () {
myScript.findNearbyLocations(displayData, displayError);
});
});
</script>
<input type="button" id="FindLocation" value="Find Location" />
<div id="results">
</div>