繁体   English   中英

我如何持久化由jquery中实现的主题切换器设置的主题?

[英]How can i persist the themes that is set by a theme switcher implemented in jquery?

我指向CSS的默认链接标记路径是

我的css路径包含不同的主题:

cssa/jquery-ui-1.10.4.custom.min.css
cssb/jquery-ui-1.10.4.custom.min.css
cssc/jquery-ui-1.10.4.custom.min.css
cssd/jquery-ui-1.10.4.custom.min.css
csse/jquery-ui-1.10.4.custom.min.css
cssf/jquery-ui-1.10.4.custom.min.css

主题切换器boot.html切换主题的下拉按钮实现

    <ul class="dropdown-menu">
        <li> <a data-theme="cssa/jquery-ui-1.10.4.custom.min.css">Dark</a> 
        </li>
        <li> <a data-theme="csse/jquery-ui-1.10.4.custom.min.css">Apple</a> 
        </li>
        <li> <a data-theme="cssb/jquery-ui-1.10.4.custom.min.css">Blue</a> 
        </li>
        <li> <a data-theme="cssc/jquery-ui-1.10.4.custom.min.css">Pearl</a> 
        </li>
        <li> <a data-theme="cssd/jquery-ui-1.10.4.custom.min.css">Box</a> 
        </li>
    </ul>
</li>

jQuery代码:

$(window).load(function () {
var link = $('link.me');
 $('ul.dropdown-menu li').click(function (e) {
     e.preventDefault();
     var theme = $(this).find('a').data('theme');
     alert(theme)
     link.attr('href', theme)
 });
 });

主题切换完美。 但是,如果我刷新页面,链接标记将指向默认的css路径,即css / jquery-ui-1.10.4.custom.min.css。 即使刷新页面后,如何使主题保持不变?

您可以使用cookies来存储您的首选项的值。 并检查存储的cookies的值,以再次检索您的首选值。 请参阅此链接以了解Cookie的基本知识。

Cookie的基本示例:

<!DOCTYPE html>
<html>
<head>
<script>

function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname+"="+cvalue+"; "+expires;
}

function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i].trim();
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}

function checkCookie() {
    var user=getCookie("username");
    if (user != "") {
        alert("Welcome again " + user);
    } else {
       user = prompt("Please enter your name:","");
       if (user != "" && user != null) {
           setCookie("username", user, 30);
       }
    }
}

</script>
</head>
<body onload="checkCookie()">
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM