首先我想说我有一个网站,我想在不重新加载页面的情况下更改语言。这就是我为 EN 和 DE 插入按钮的原因。
<button lang="de" class="btn btn-primary btn-sm language" >DE</button>
<button lang="en" class="btn btn-primary btn-sm language" >EN</button>
此外,我的 CSS 如下所示:
html.en :lang(de) {
display: none;
}
html.de :lang(en) {
display: none;
}
这是我的 JQuery 脚本:
if ($("html").hasClass('de')) {
$('html').addClass('de');
}
else{
$('html').addClass('en');
}
$('.language').click(function(){
($('html').toggleClass('de en'));
});
最后这是我的 html 标签:
<html class="">
我的问题是,如果我在一个页面上更改语言,如果我单击指向新页面的链接,它会自动变回。我知道我的 JQuery if 函数有问题。但我真的不知道如何解决这个问题。 也许使用 JQuery cookie?
最佳答案
是的——每次页面加载都会产生一个新的 JavaScript 作用域。如果您需要在页面之间维护任何状态,则需要使用 cookie 或在页面之间的 URL 上附加一些内容。 (即使使用服务器端组件,通常也需要客户端标识符来保持服务器关联的 session ID。)
https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API也可能感兴趣。
关于javascript - 如何在 JQuery 中存储全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33333159/