Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2016, 15:24
Аватар для LuckyRuS
Новичок на форуме
Отправить личное сообщение для LuckyRuS Посмотреть профиль Найти все сообщения от LuckyRuS
 
Регистрация: 14.08.2016
Сообщений: 4

Проблема с выпадающим списком
Доброго времени суток мастера программирования! Будьте добры подскажите как сделать, чтобы выбранный пункт выпадающего списка сохранялся при обновлении страницы. Пробовал подключить localstorage, но никаких изменений не получилось.
<head>
<script>
$(function(){
/* выбор города */
$('.delivery_list').click(function(){
$(".cities_list").slideToggle('fast');
});
$('ul.cities_list li').click(function(){
var tx = $(this).html();
var tv = $(this).attr('alt');
$(".cities_list").slideUp('fast');
$(".delivery_list span").html(tx);
$(".delivery_text").html(tv);
});
})
</script>
</head>
<body>
<div class="delivery_block">
<div class="delivery_list"><div id="btn"> </div><span>Москва</span></div>

<ul class="cities_list">
<li alt="Адрес 1">Москва</li>
<li alt="Адрес 2">Санкт-Петербург</li>
<li alt="Адрес 3">Краснодар</li>
<li alt="Адрес 4">Новосибирск</li>
</ul>

<div class="delivery_text">Адрес 1</div>
</div></body>

Заранее благодарю!

Последний раз редактировалось LuckyRuS, 07.09.2016 в 15:27.
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2016, 15:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Этот список "самоделка" или же все таки костомизация оригинального select?
Ответить с цитированием
  #3 (permalink)  
Старый 07.09.2016, 15:55
Аватар для LuckyRuS
Новичок на форуме
Отправить личное сообщение для LuckyRuS Посмотреть профиль Найти все сообщения от LuckyRuS
 
Регистрация: 14.08.2016
Сообщений: 4

Самоделка на в виде ненумерованного списка (ни cookie ни localstorage не работают). Может есть какой-нибудь готовый вариант списка, который будет выводить значение селекта в отдельном текстовом блоке и при этом сохранять выбор при обновлении страницы?

Все сделал на главной странице, стилизовал, но вот при обновлении все слетает на первый город! Подскажите как быть, пожалуйста!

Последний раз редактировалось LuckyRuS, 07.09.2016 в 15:59.
Ответить с цитированием
  #4 (permalink)  
Старый 07.09.2016, 16:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$(function() {
    var bLst = $('div.delivery_list').click(function(){
        iLst.slideToggle('fast');
    }).find("span"), 
    aTxt = $("div.delivery_text"),
    iAdr = $('ul.cities_list li').click(function(){
        var i = $(this);
        localStorage.sity = i.index();
        iLst.slideUp('fast');
        bLst.text(i.text());
        aTxt.text(i.data('adr'));
    }), 
    iLst = iAdr.first().parent();

    if(localStorage.sity) {
        bLst.text(iAdr.eq(localStorage.sity).text());
        aTxt.text(iAdr.eq(localStorage.sity).data('adr'));  
    }
});


<li data-adr="Адрес 1">Москва</li> - alt

Хотя прежде чем лезть в localStorage, нужно проверять поддержку его браузером.

Последний раз редактировалось laimas, 07.09.2016 в 20:14.
Ответить с цитированием
  #5 (permalink)  
Старый 07.09.2016, 16:45
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

Только хотел закинуть почти такой же код но laimas опередил.
Сам подумал что значит не пашет localStorage и куки.
Вроде как все должно быть норм
Ответить с цитированием
  #6 (permalink)  
Старый 07.09.2016, 16:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Bond
почти такой же код
Лучше не такой, а определить сразу все, как исправлено.
Ответить с цитированием
  #7 (permalink)  
Старый 07.09.2016, 21:41
Аватар для LuckyRuS
Новичок на форуме
Отправить личное сообщение для LuckyRuS Посмотреть профиль Найти все сообщения от LuckyRuS
 
Регистрация: 14.08.2016
Сообщений: 4

Это единственный вразумительный (без выпендрежа "мол читай то, читай это") ответ за неделю мучений! Спасибо большое!

P.S. Литературу по данной тематике читаю по мере возможности! Еще раз спасибо!
Ответить с цитированием
  #8 (permalink)  
Старый 08.09.2016, 00:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от LuckyRuS
Литературу по данной тематике читаю
А тут из литературы кроме описания API jQuery и ничего более читать. С localStorage же лучше так:

var mem = (function() {
   try {
     return 'localStorage' in window && window['localStorage'] !== null ? localStorage : false
   } catch(e) {
     //
   } 
}());
 
$(function() {
    var bLst = $('div.delivery_list').click(function(){
        iLst.slideToggle('fast');
    }).find("span"), 
    aTxt = $("div.delivery_text"),
    iAdr = $('ul.cities_list li').click(function(){
        var i = $(this);
        if(mem) mem.sity = i.index();
        iLst.slideUp('fast');
        bLst.text(i.text());
        aTxt.text(i.data('adr'));
    }), 
    iLst = iAdr.first().parent();
    
    if(mem && mem.sity) {
        bLst.text(iAdr.eq(mem.sity).text());
        aTxt.text(iAdr.eq(mem.sity).data('adr'));  
    }
});


Но поведение раскрывающегося списка имеет еще одну особенность - если произведен щелчок вне его, то список будет закрыт. О реализации подобного можно прочесть здесь.

А вот атрибут alt используется тегом IMG и "правила хорошего тона" определяют его обязательное заполнение - в случае если изображение не загружено, то будет отображен текст определенный в alt.

Элемент LI не имеет данного атрибута, а использовать "чужой" атрибут как "пользовательский", это некорректно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с выпадающим списком JavaScript ursus102 Общие вопросы Javascript 0 16.01.2016 19:30
Проблема со списком select MasterDmx Элементы интерфейса 7 17.02.2013 07:32
Помогите с выпадающим списком Cke4 Элементы интерфейса 5 28.09.2010 09:24
Помогите новичку с выпадающим списком interest Элементы интерфейса 5 19.05.2010 13:15
проблема с выпадающим списком analord jQuery 5 08.07.2009 12:38