【发布时间】:2017-03-17 22:33:45
【问题描述】:
不知道为什么这不起作用,可以使用一些帮助。我试图让它在你点击“通讯”、“新闻”或“公共公告”时,布局会改变以显示正确的视图并存储在本地存储中。
现在,当您单击上述 3 项中的一项时,没有任何反应 - 它不会更改布局视图,也不会将数据存储在本地存储中...
非常感谢任何帮助。
JS:
$(document).ready(function(){
// Changing layout to 'newsletters'
$('.news_nav-for_nckcn ul li:nth-of-type(1)').on('click', function () {
changeToNewslettersView();
});
// Changing layout to 'news'
$('.news_nav-for_nckcn ul li:nth-of-type(2)').on('click', function () {
changeToNewsView();
});
$('.news_nav-for_nckcn ul li:nth-of-type(3)').on('click', function () {
changeToPublicAnnouncementsView();
});
if (typeof(Storage) !== "undefined") {
var view = localStorage.getItem("view");
if (view && view == "newsletters") {
changeToNewslettersView();
} else if (view && view == "news") {
changeToNewsView();
} else if (view && view == "publicAnnouncements") {
changeToPublicAnnouncementsView();
} else {
// view isn't set, or is set to something we don't recognize
}
} else {
// user's browser doesn't support localStorage
}
});
// Changing layout 'news' & 'publicAnnouncements' to 'newsletters'
function changeToNewslettersView() {
var news=document.getElementById('hideClass');
news.style.display="none";
var publicAnnouncements=document.getElementById('hideClass');
publicAnnouncements.style.display="none";
var newsletters=document.getElementById('showClass');
newsletters.style.display="block";
storagePut("newsletters");
$('.news_nav-for_nckcn ul li:nth-of-type(1)').addClass('active');
$('.news_nav-for_nckcn ul li:nth-of-type(2)').removeClass('active');
$('.news_nav-for_nckcn ul li:nth-of-type(3)').removeClass('active');
}
// Changing layout 'newsletters' & 'publicAnnouncements' to 'news'
function changeToNewsView() {
var newsletters=document.getElementById('hideClass');
newsletters.style.display="none";
var publicAnnouncements=document.getElementById('hideClass');
publicAnnouncements.style.display="none";
var news=document.getElementById('showClass');
news.style.display="block";
storagePut("news");
$('.news_nav-for_nckcn ul li:nth-of-type(2)').addClass('active');
$('.news_nav-for_nckcn ul li:nth-of-type(1)').removeClass('active');
$('.news_nav-for_nckcn ul li:nth-of-type(3)').removeClass('active');
}
// Changing layout 'newsletters' & 'news' to 'publicAnnouncements'
function changeToPublicAnnouncementsView() {
var newsletters=document.getElementById('hideClass');
newsletters.style.display="none";
var news=document.getElementById('hideClass');
news.style.display="none";
var publicAnnouncements=document.getElementById('showClass');
publicAnnouncements.style.display="block";
storagePut("publicAnnouncements");
$('.news_nav-for_nckcn ul li:nth-of-type(3)').addClass('active');
$('.news_nav-for_nckcn ul li:nth-of-type(1)').removeClass('active');
$('.news_nav-for_nckcn ul li:nth-of-type(2)').removeClass('active');
}
function storagePut(view) {
if (typeof(Storage) !== "undefined") {
localStorage.setItem("view", view);
} else {
// user's browser doesn't support localStorage
}
}
【问题讨论】:
-
控制台错误:“TypeError:新闻为空”。没有 ID 为“hideClass”的元素。
-
Html 元素不能有多个 id。您必须在隐藏内容上使用一些“隐藏”类
标签: javascript jquery css html local-storage