mootools或jquery中的颜色切换器

时间:2010-11-08 15:18:01

标签: jquery mootools

这是我简单的javascript函数来切换颜色并且它工作正常,但是我需要在我的网站中启用jquery或mootools然后更好地使这个功能现代化

function changeThemeColor(color)
{
    switch(color)
    {
        case "style1":
        default:
            document.getElementById('CSSfile').href = 'css/style1.css';
            setCookie('ThemeColor','style1',7);
            break;
        case "style2":
            document.getElementById('CSSfile').href = 'css/style2.css';
            setCookie('ThemeColor','style6',7);
            break;
    }
}

我知道这可能是一个巨大的任务,但我真的需要将此代码转换为jquery或mootools

4 个答案:

答案 0 :(得分:1)

对于MooTools:

function changeThemeColor(color)
{
    switch(color)
    {
        case "style1":
        default:
            $('CSSfile').set('href','css/style1.css');
            Cookie.write('ThemeColor','style1',{'duration':7});
            break;
        case "style2":
            $('CSSfile').set('href','css/style2.css');
            Cookie.write('ThemeColor','style6',{'duration':7});
            break;
    }
}

正如你所看到的,编辑是如此之小,如果我是你,我甚至都不愿意实施它们。这也不会让你的网站更具前瞻性。

答案 1 :(得分:1)

如果你想使用jQuery改变这个

document.getElementById('CSSfile').href = 'css/style1.css';

$("#CSSfile").attr("href",'css/style1.css');

如果你想改变div的颜色是

$("#divId").css("color","#f0f0f0")

对不起我的英语,我来自阿根廷

编辑: http://plugins.jquery.com/project/Cookie 这里有一个cookie的jQuery插件

答案 2 :(得分:1)

如果您的代码有效,为什么要将它转换为库代码,以便将其转换回您所拥有的代码?

如果这实际上是您的代码的样子,您可以摆脱一些冗余:

function changeThemeColor(color) {
    document.getElementById('CSSfile').href = 'css/' + color + '.css';
    switch(color) {
        case "style1":
        default:
            setCookie('ThemeColor','style1',7);
            break;
        case "style2":
            setCookie('ThemeColor','style6',7);
            break;
    }
}

style2正在向'style6'发送setCookie()。如果这是一个错误,它应该发送'style2',你可以进一步减少它。

function changeThemeColor(color) {
    document.getElementById('CSSfile').href = 'css/' + color + '.css';
    setCookie('ThemeColor', color, 7);
}

答案 3 :(得分:1)

对于mootools(或者实际上是jquery),我会创建一个样式地图,并执行以下操作:

var changeThemeColor = function(colour) {
    var colours = { // set your mapping here.
        style1: "style1",
        style2: "style6"
    }, style = colours[colour] || colours['style1']; // default to style1 if not mapped

    document.id("CSSfile").set("href", "css/"+style+ ".css");
    Cookie.write("ThemeColor", style, {
        duration: 7,
        path: "/"
    });
};

尝试使其更加模块化/基于模式,以便将来可以轻松支持添加新样式。最好的方法是通过options var作为第二个参数来覆盖(外部)默认映射,并在内部执行Object.merge()