2015-02-20 3 views
0

Я довольно новичок в jQuery, и я пытаюсь установить класс на основе localStorage.getItem, но он не работает. Вот мой код:.addClass не работает (удаляется при обновлении)

if (localStorage.getItem("active_layout") == 2) { 
    $("#laa").addClass("active"); 
}; 

Элемент LocalStorage имеет значение 2 и класс добавляется, когда я нажимаю на элемент. Но когда я обновляюсь, он удаляется. Можно ли сохранить его там, а не удаляться при обновлении?

+0

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

+0

Как я уже сказал, я очень новичок в jQuery. Как я могу повторно добавить класс? Помощь очень ценится :) –

+0

См. Ниже, я добавил вам ответ. –

ответ

1

Попробуйте заново добавить класс по документу готовый:

$(function() { 
    if (localStorage.getItem("active_layout") == 2) { 
     $("#laa").addClass("active"); 
    }; 
}); 
+0

Это работало как шарм! Спасибо огромное! –

+0

Нет проблем :) Приготовьтесь/согласитесь, если это поможет! (вы получаете бонусные баллы тоже ( –

+0

Приняли ответ, не можете повышать, поскольку у меня недостаточно репутации * кричит * –

0

добавить активный класс по умолчанию, и удалить его, если вам не нужно ...

if (localStorage.getItem("active_layout") !== 2) { 
    $("#laa").removeClass("active"); 
}; 

или добавить этот класс Ready метод

$(document).ready(function(){ 
if (localStorage.getItem("active_layout") == 2) { 
     $("#laa").addClass("active"); 
    }; 
}); 
+0

Это все равно будет отменено, если страница обновится. –

+0

Tried @EvanKnowles отвечает, и он удаляет класс 'active', если элемент localStorage не равен 2. –

+0

Это альтернативный способ, но лучше добавить класс в готовую функцию. – Dhaval

0

Когда страница обновлена, вы получите совершенно новую страницу. Изменения, сделанные с помощью javascript, нужно будет переделать.

Если вы хотите использовать localstorage, вам нужно будет повторно добавить класс при каждом обновлении (например, ответ Эвана).

Вы также можете добавить некоторую логику сервера, чтобы html обслуживался с классом, который вы хотите. Однако сервер не может читать localstorage - вы можете использовать cookie.

Смежные вопросы