Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определение местоположения (https://javascript.ru/forum/misc/78989-opredelenie-mestopolozheniya.html)

_marisha 03.12.2019 08:30

Определение местоположения
 
Вложений: 3
Доброго времени суток!
На сайте есть функционал определения местоположения.
На основании местоположения выводится надпись "Ваш город "Название города""(скрин "Город").
На данный момент выводится окно с подтверждением определившегося города (скрин "Подтверждение").
При клике на "Нет" открывается окно с выбором городов. После выбора города, если кликнуть на "Запомнить город" (скрин "Нет"), то окно с подтверждением города всё равно отображается. Подскажите, пожалуйста, каким образом закрыть окно подтверждения города после того, как самостоятельно выбрали город?
Также необходимо закрывать окно подтверждения если кликнуть на "Да".

<div class="user-geo-position">
			<div class="user-geo-position-label"><?=GetMessage("YOU_GEO_LOCATION_LABEL")?></div>
				<?if($arParams["INCLUDE_YANDEX_API"] == "Y"):?>
					<?=GetMessage("DETECT_YOU_GEO_LOCATION")?>
				<?else:?>
					<div class="user-geo-position-value"><a href="#" class="user-geo-position-value-link"><?=$_SESSION["USER_GEO_POSITION"]["city"]?></a></div>
						<div class="wrapQuestionReaspekt">
			                <div class="questionYourCityReaspekt">
			                	Ваш город <strong><?=$_SESSION["USER_GEO_POSITION"]["city"]?></strong>?
			                </div>
			                <div class="questionButtonReaspekt reaspekt_clearfix">
			                    <a href="#" class="user-geo-position-value-link"><div class="questionNoReaspekt">Нет</div></a>
			                    <div class="questionYesReaspekt">Да</div> 
			                </div>
		            	</div>
				<?endif;?>
		</div>

laimas 03.12.2019 08:39

И как ответить на вопрос если это чистый html со вставками php-кода, который вообще ничего не может сделать?

_marisha 03.12.2019 09:03

Вложений: 1
laimas, спасибо что откликнулись :)
Убрать окно подтверждения города после нажатия на "Да" можно так:
<script type="text/javascript">
		            		$('.questionYesReaspekt').click(function()
		            		{
		            		    // скрываем блок подтверждения города
		            		    $('.wrapQuestionReaspekt').css("display","none");
		            		});
		            	</script>


Если "Нет":
1) за вывод "Нет" отвечает
<a href="#" class="user-geo-position-value-link"><div class="questionNoReaspekt">Нет</div></a>

2) в script.js если искать по user-geo-position-value-link, есть строка 245
$(document).on("click", ".user-geo-position-value-link", openLocationWindow);

3) стр 203
var openLocationWindow = function(event){
		$("#geo-location-window").removeClass("hidden").show();
		return event.preventDefault();
	};


Файл script.js во вложении

laimas 03.12.2019 09:06

Цитата:

Сообщение от _marisha
Убрать окно подтверждения города после нажатия на "Да" можно так:

Это же самое нужно сделать и при изменении в списке городов.

Здесь странная логика:

$("#geo-location-window").removeClass("hidden").show();

Либо "#geo-location-window" скрывается/показывается посредством css, добавлением/удалением класса "hidden" и .show() лишнее, либо не нужен класс и используем методы show/hide.

_marisha 03.12.2019 10:39

Цитата:

Сообщение от laimas (Сообщение 516667)
Это же самое нужно сделать и при изменении в списке городов.

- верно. Только не могу сообразить каким образом сделать.
Если делать так:
$('.geo-location-window-button').click(function()
		            		{
		            		    // скрываем блок подтверждения города
		            		    $('.wrapQuestionReaspekt').css("display","none");
		            		});

То поидее при клике на кнопку "Запомнить город" должно закрываться окно выбора городов и скрываться окно подтверждения города.
Но в таком случае, после клика на кнопку "Запомнить город" окно с городами закрывается, а окно с подтверждением города не скрывается

laimas 03.12.2019 10:56

Судя по всему, это кастомный список, значит смотрите его доки и вешайте на событие изменения в нем функцию, где выполнить триггер: $('.questionYesReaspekt').trigger('click'), или следить за изменением списка на котором плагин и в нем выполнять триггер.

valenciaa 04.12.2019 21:59

Что-то ошибку выдает...пробовал внедрять такую штуковину про игроков популярных игровых автоматов вот этих в Украине потому что они очень распространились по всему рунету и довольно быстро.


Часовой пояс GMT +3, время: 07:38.