Я использую списки переключателей, которые я собрал из постов на этом сайте. Они отлично работают, но я хотел, чтобы они смогли сохранить значение cookie.
Я выяснил, как заставить cookie работать, когда вы нацеливаетесь на один класс / элемент, такой как "if (myCookie == value) {делать вещи для" .myClass "…}". Проблема, однако, в том, что я использую набор списков, на которые влияет их вызов с помощью "$ (this)". Таким образом, нацеливание на них через значение класса не будет работать, так как они нацелены на все, используя этот класс. Есть смысл? Файл cookie должен влиять на «this», а не на «myClass».
Ниже приведен код, который я собрал для своих списков.
// append links to the element directly preceding the element with a class of "toggle"
$(".toggle").prev(".toggleList").append('<a href="#" class="toggleLink" id="collapse"></a>');
// hide all of the elements with a class of 'toggle'
$('.toggle').show();
$('a.toggleLink').click(function() {
// change the link depending on whether the element is shown or hidden
if (!$(this).is('.active')) {
$(this).addClass('active');
$(this).attr("id" ,"expand");
THIS IS WHERE I NEED THE $.COOKIE TO WORK. I NEED IT TO REMEMBER THAT "THIS" IS "EXPANDED" OR THAT THE FOLLOWING LINE IS "COLLAPSED"
}
else {
$(this).removeClass('active');
$(this).attr("id" ,"collapse");
}
// toggle the display
$(this).parent().next('.toggle').toggle();
return false;
});
Просто чтобы добавить к этому ...
У меня есть понимание основного использования файлов cookie, которые мы использовали в других местах на нашем тестовом сайте. Проблема в том, что единственный способ, которым я знаю, как их использовать, это нацеливать их так, как будто они ниже…
// cookies
// sidebar state
var sideBar = $.cookie('sideBar');
// Set the user's selection for the left column
if (sideBar == 'collapsed') {
$('#btnCollapseSidebar').css("visibility" ,"hidden");
$('#btnExpandSidebar').css("visibility" ,"visible");
$('#leftCol').css("visibility" ,"hidden");
$('#sidebar').css("visibility" ,"hidden");
$('#rightCol').css("margin" ,"42px 0 0 45px");
};
Способ, которым я должен использовать их, как указано выше, не может быть нацелен на отдельный класс, но на сам предмет («this»). Когда я пытался применить их, адаптируя приведенный выше код, это влияет на каждый экземпляр моего класса ".toggle". Класс .toggle будет использоваться на странице несколько раз и должен быть доступен бесконечное количество раз.