导航到另一个页面后保留 CSS 样式
Keep CSS styles after navigating to another page
我有一些 jQuery
用于控制下拉菜单和其他样式的导航栏代码。出于测试目的,我做了第一行:
$( ".dropdown--link").on("click", function(event) {
event.preventDefault();
})
但这使我的 link 无法正常工作。有没有办法在保持添加样式的同时保持 jQuery
样式和新页面的 link ?例如,所有样式 after event.preventDefault();
在我导航到新页面后被删除,我希望它保留(在 preventDefault
被删除的情况下)。
( ".dropdown--link").on("click", function(event) {
// event.preventDefault();
var targetPosition = $(this).offset().left;
var targetWidth = $(this).width();
var targetCenter = targetPosition + (0.5 * targetWidth) - 10;
$( "nav ul li" ).each(function() { $(this).removeClass("bold"); });
$(this).addClass('bold');
$(".arrow-down").show();
$(".arrow-down").css("left", targetCenter);
})
您可以将样式 "status" 保存到本地存储,并且每次加载页面时更改样式(如果以前更改过)。
function changeStyle() {
// event.preventDefault();
localStorage.setItem("styleChanged", "1");
var targetPosition = $(this).offset().left;
var targetWidth = $(this).width();
var targetCenter = targetPosition + (0.5 * targetWidth) - 10;
$( "nav ul li" ).each(function() { $(this).removeClass("bold"); });
$(this).addClass('bold');
$(".arrow-down").show();
$(".arrow-down").css("left", targetCenter);
}
$(".dropdown--link").on("click", changeStyle);
$.ready(function(){
var styleChanged = localStorage.getItem("styleChanged");
if (styleChanged && styleChanged.equals("1")) {
changeStyle();
}
});
当您想要撤消更改时运行此代码:
localStorage.setItem("styleChanged", "0");
您似乎希望您的导航指示此时哪个选项卡处于活动状态,
您可以通过将导航与内容分开来轻松实现这一点。
并且只加载内容,
看看。 AngularJS、KnockoutJs、EmberJS。甚至来自 Microsoft 的 MVC。
它们都允许您拥有仅刷新页面一部分的单页网站。
见鬼,如果需要,您可以使用 Ajax 调用来刷新页面中的内容。
在另一个页面上保持状态只适用于 url 参数或会话变量。
我有一些 jQuery
用于控制下拉菜单和其他样式的导航栏代码。出于测试目的,我做了第一行:
$( ".dropdown--link").on("click", function(event) {
event.preventDefault();
})
但这使我的 link 无法正常工作。有没有办法在保持添加样式的同时保持 jQuery
样式和新页面的 link ?例如,所有样式 after event.preventDefault();
在我导航到新页面后被删除,我希望它保留(在 preventDefault
被删除的情况下)。
( ".dropdown--link").on("click", function(event) {
// event.preventDefault();
var targetPosition = $(this).offset().left;
var targetWidth = $(this).width();
var targetCenter = targetPosition + (0.5 * targetWidth) - 10;
$( "nav ul li" ).each(function() { $(this).removeClass("bold"); });
$(this).addClass('bold');
$(".arrow-down").show();
$(".arrow-down").css("left", targetCenter);
})
您可以将样式 "status" 保存到本地存储,并且每次加载页面时更改样式(如果以前更改过)。
function changeStyle() {
// event.preventDefault();
localStorage.setItem("styleChanged", "1");
var targetPosition = $(this).offset().left;
var targetWidth = $(this).width();
var targetCenter = targetPosition + (0.5 * targetWidth) - 10;
$( "nav ul li" ).each(function() { $(this).removeClass("bold"); });
$(this).addClass('bold');
$(".arrow-down").show();
$(".arrow-down").css("left", targetCenter);
}
$(".dropdown--link").on("click", changeStyle);
$.ready(function(){
var styleChanged = localStorage.getItem("styleChanged");
if (styleChanged && styleChanged.equals("1")) {
changeStyle();
}
});
当您想要撤消更改时运行此代码:
localStorage.setItem("styleChanged", "0");
您似乎希望您的导航指示此时哪个选项卡处于活动状态, 您可以通过将导航与内容分开来轻松实现这一点。 并且只加载内容,
看看。 AngularJS、KnockoutJs、EmberJS。甚至来自 Microsoft 的 MVC。 它们都允许您拥有仅刷新页面一部分的单页网站。
见鬼,如果需要,您可以使用 Ajax 调用来刷新页面中的内容。
在另一个页面上保持状态只适用于 url 参数或会话变量。