jQuery - используйте куки для запоминания позиции меню - PullRequest
0 голосов
/ 22 марта 2012

Я использую jQuery Cycle для разбиения длинного меню на 5 частей или панелей - 5 элементов = 1 панель. У меня есть код, работающий для нарезки длинного списка, и jQuery Cycle теперь разбивает список на страницы просто отлично.

Но! Мне нужно использовать файл cookie, чтобы «запомнить», на какой панели я находился, когда щелкаю элемент списка. IE: если я щелкну по элементу в Panel2, страница загрузится, и мое меню снова вернется в Panel1.

Цикл jQuery принимает startingSlide в качестве опции. Как я могу использовать куки, чтобы установить текущую панель, на которой я нахожусь? Тогда, как я могу передать эту опцию в jQuery Cycle как startingSlide?

Пример скрипты: http://jsfiddle.net/saltcod/eayZq/2/

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

$('.list').cycle({
    fx: 'scrollVert',
    speed: 'fast',
    timeout: 0,
    prev: '.back',
    next: '.more',
    startingSlide = 'panel-x-that-i-just-clicked-on'
});

Кто-нибудь знает, как я могу использовать cookie-файл, чтобы «передать» номер панели на следующую страницу?

1 Ответ

0 голосов
/ 22 марта 2012

Почему бы вам просто не предотвратить перезагрузку вашей страницы с помощью клика?

Вот вам пример со ссылками, добавленными вокруг каждого li:

http://jsfiddle.net/jtbowden/ALsHA/1/

При нажатии на ссылки страница не перезагружается, потому что я return false; из обработчика щелчков.Это то же самое, что и e.preventDefault() в обработчике:

$('li a').on('click', function(e) {
    e.preventDefault();  // This
    alert('You clicked: '+$(this).text());
    return false;  // Or this
});

return false; делает немного больше, но также предотвращает перезагрузку страницы при клике.

...