Jquery cookie для запоминания последнего состояния выпадающего меню - PullRequest
2 голосов
/ 13 декабря 2011

Может ли кто-нибудь помочь мне с этим, я не могу найти скрипт в интернете, который делает это в jQuery. Мне нужно запомнить последнее состояние раскрывающегося меню, чтобы при загрузке страницы уже был выбран вариант раскрывающегося списка. Срок годности файлов cookie должен составлять 90 дней, или позвольте мне указать в сценарии. Поскольку я уже использую jQuery на своей странице, я хочу, чтобы этот скрипт cookie использовал jquery, jquery cookie плагин. Заранее спасибо. Я не программист, но я стараюсь.

<body onLoad="GETcookie()">
<select onChange="SETcookie()">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

Ответы [ 2 ]

9 голосов
/ 13 декабря 2011

С помощью плагина, который я включил, вы можете получать и устанавливать куки.

Ваш код будет выглядеть примерно так:

//checks if the cookie has been set

if($.cookie('remember_select') != null) {

    // set the option to selected that corresponds to what the cookie is set to

    $('.select_class option[value="' + $.cookie('remember_select') + '"]').attr('selected', 'selected');

}

// when a new option is selected this is triggered

$('.select_class').change(function() {

    // new cookie is set when the option is changed

    $.cookie('remember_select', $('.select_class option:selected').val(), { expires: 90, path: '/'});

});

Вот как бы вы select выглядели:

<select class="select_class">
    <option value="1">Row 1</option>
    <option value="2">Row 2</option>
    <option value="3">Row 3</option>
</select>

Вот демонстрация этого на jsFiddle: http://jsfiddle.net/RastaLulz/3HxCF/3/

Вот плагин cookie jQuery, если у вас его еще нет: http://pastebin.com/CBueT8LP

1 голос
/ 13 декабря 2011

Сначала не делайте body onLoad (должно быть в нижнем регистре), но в моем примере вам не нужны ваши onload и onchange но:

// This replace onload
$(function() {
  // Read your cookie and other things up to you to do...
  $.cookie('the_cookie');

  // on change of your select
  $('select').on('change', function() {
    // Set the cookie
    $.cookie('the_cookie', 'the_value', { expires: 90, path: '/'});
  });

});

PS: мой скрипт jQuery 1.7 (для включения), так что смотрите, если вы в курсе!

Редактировать: установить 90 дней

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...