Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Замена пункта при клике на подпункт (https://javascript.ru/forum/jquery/63528-zamena-punkta-pri-klike-na-podpunkt.html)

sherzo 13.06.2016 13:23

Как заменить пункт при клике на подпункт
 
Приветствую уважаемые форумчане! Есть меню выбора города. При наведении на первый пункт "Выбрать регион" выводится список городов, где при клике на город нужно чтоб "Выбрать регион" заменился текстом на который кликнули. Пробовал сделать так:
$('.menu-item-mega-parent div ul li a').click(function(){
        var title = $(this).html();
		$(this).parents('.menu-item-mega-parent').find('.avia-menu-text').html(title);


Но, видимо что-то не учел. :help:

Могли бы помочь с реализацией данного метода? Буду признателен.

<li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-mega-parent  menu-item-top-level menu-item-top-level-1 dropdown_ul_available" style="overflow: hidden;"><a href="#" itemprop="url" style="height: 75px; line-height: 75px; cursor: default;" class=""><span class="avia-bullet"></span><span class="avia-menu-text">Выбрать регион</span><span class="avia-menu-fx"><span class="avia-arrow-wrap"><span class="avia-arrow"></span></span></span><span class="dropdown_available"></span></a>
<div class="avia_mega_div avia_mega4 twelve units" style="opacity: 0; display: none; right: -603px;">

<ul class="sub-menu">
	<li id="menu-item-533" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children avia_mega_menu_columns_4 three units  avia_mega_menu_columns_first"><span class="mega_menu_title heading-color av-special-font">&nbsp;&nbsp;</span>
	<ul class="sub-menu">
		<li id="menu-item-532" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="#" itemprop="url"><span class="avia-bullet"></span><span class="avia-menu-text">Астана</span></a></li>
		<li id="menu-item-32" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="#" itemprop="url"><span class="avia-bullet"></span><span class="avia-menu-text">Алматы</span></a></li>
	</ul>
</li>
	<li id="menu-item-454" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children avia_mega_menu_columns_4 three units "><span class="mega_menu_title heading-color av-special-font"><a href="http://#">Жамбылская область</a></span>
	<ul class="sub-menu">
		<li id="menu-item-455" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#" itemprop="url"><span class="avia-bullet"></span><span class="avia-menu-text">Тараз</span></a></li>
		<li id="menu-item-456" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#" itemprop="url"><span class="avia-bullet"></span><span class="avia-menu-text">Шу</span></a></li>
		<li id="menu-item-457" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://#" itemprop="url"><span class="avia-bullet"></span><span class="avia-menu-text">Каратау</span></a></li>
	</ul>
</li>
</ul>
</div>
</li>


P.S. Структуру поменять не смогу, нужно в этом виде вытаскивать.

рони 13.06.2016 14:29

sherzo,
.find('.avia-menu-text:first')

sherzo 13.06.2016 15:16

Зашел сюда, чтоб написать, что так и сделал... а тут уже ответ от Вас! Спасибо. :)

sherzo 13.06.2016 15:27

Не подскажете как с помощью jquery cookies зафиксировать выбор этого самого города?

рони 13.06.2016 15:36

Цитата:

Сообщение от sherzo
как с помощью jquery cookies

$(function() {
    var city = localStorage.getItem("city"),
        avia = $(".menu-item-mega-parent").find(".avia-menu-text:first");
    city && avia.text(city);
    $(".sub-menu a").click(function(event) {
        event.preventDefault();
        city = $(this).text();
        avia.text(city);
        localStorage.setItem("city", city)
    })
});

sherzo 13.06.2016 15:58

Спасибо. Работает, но только город появляется только после того как кликну еще раз на другой город. Было до скрипта так: стоял пункт "Выбрать регион", далее выбирал регион "Тараз", обновлял страницу все слетало и опять становилось "Выбрать регион", далее опять кликал к примеру "Алматы" становился "Алматы".

Сейчас скрипт фиксирует регион, но после обновления страницы, к примеру до того я выбрал "Тараз" становится опять "Выбрать регион", а при клике на "Алматы", появляется "Тараз", при повторном клике на "Алматы", появляется уже "Алматы".

В общем скрипт фиксирует, но где-то в фоне. ((

sherzo 13.06.2016 16:02

Простите, туплю. Все отлично работает! Код в другую функцию вставил.


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