Сохранение переключенного класса после обновления страницы - PullRequest
0 голосов
/ 05 декабря 2011

я думаю, что это уже было сделано много раз, но, несмотря на то, что, прочитав некоторые посты о файлах cookie, я не смог обойти это.

У меня в основном есть второй класс тела с различными шрифтами для всего сайта, которыйдоступ, когда клиенты нажимают на ссылку, чтобы изменить шрифт.В идеале это не должно происходить постранично, но новый класс будет «прилипать» после посещения новой страницы.Мой код класса изменений через jquery выглядит так:

$(document).ready(function() {
    $("a#switcher").click(function() {
        $("body").toggleClass("alternate_body");
    });
});

Есть ли относительно простой способ добиться этого?Заранее спасибо.

Ответы [ 4 ]

3 голосов
/ 05 декабря 2011

Cookie-подход

Вы можете использовать плагин jQuery, например jquery-cookie , чтобы упростить доступ к cookie-файлам.Таким образом, ваш код станет примерно таким, чтобы сохранить настройки класса:

$(document).ready(function() {
    var body_class = $.cookie('body_class');
    if(body_class) {
        $('body').attr('class', body_class);
    }
    $("a#switcher").click(function() {
        $("body").toggleClass("alternate_body");
        $.cookie('body_class', $('body').attr('class'));
    });
});

Параметры URL

Другой вариант - установить параметр URL для всех ссылок на странице, когда они нажимают #switcher для сохранения состояния без установки cookie.

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

Используйте файлы cookie или новое локальное хранилище , представленное в HTML5. Вы также можете создать некоторое решение для сеанса сервера, в котором вы получите предыдущие настройки с помощью вызова AJAX или около того.

0 голосов
/ 05 декабря 2011

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

http://www.electrictoolbox.com/jquery-cookies/

второй вариант - вызвать функцию php, чтобы сохранить ее в базе данных (я не знаю, предназначена ли она для пользователей, когда они вошли в систему?), Но в противном случае вы можете сохранить ее в базе данных, чтобы сохранить и прочитать ее. позже, когда кто-то удаляет его историю интернета или переходит на другой компьютер, он имеет такую ​​же раскладку.

приветствует, Штефана.

0 голосов
/ 05 декабря 2011

Для этого вам обязательно нужно будет использовать куки.

Прежде всего вам необходимо скачать плагин jQuery cookie и добавить его на свою страницу.

Затемв приведенном выше примере вам потребуется установить cookie при изменении класса тела:

$("a#switcher").click(function() {
    $("body").toggleClass("alternate_body");
    $.cookie('bodyClass', 'alternate_body');
});

Затем при загрузке страницы проверьте наличие файла cookie и установите класс тела как требуется:

$("BODY").addClass($.cookie('bodyClass'));
...