繁体   English   中英

Javascript更改div的颜色,然后更改div焦点的颜色

[英]Javascript change colour of divs, and then colour of the div's focus

我正在建立一个html论坛,并使用javascript更改论坛的颜色,我有三个div,一个是蓝色,绿色和红色。

单击每个div时, javascript将更改elements的颜色

我想使用javascript中的.css()函数更改提交按钮的焦点颜色,但是焦点部分不起作用

这是我的JavaScript代码:

$("#green").click(function() {
    $(".mailheader").css("background","#a3d300");
    $(".submit").css("background","#a3d300");
    $(".submit:focus").css("background","#98cf00");
});
$("#blue").click(function() {
    $(".mailheader").css("background","#00b4ff");
    $(".submit").css("background","#00b4ff");
    $(".submit:focus").css("background","#04a6e9");
});
$("#red").click(function() {
    $(".mailheader").css("background","#ff0000");
    $(".submit").css("background","#ff0000");
    $(".submit:focus").css("background","#ea0202");
});

所以我试过$(".submit:focus").css("background","#ea0202"); 改变焦点的背景,但这是行不通的。 有人知道怎么修这个东西吗? 谢谢

检查一下

DEMO

HTML

<div class="mailheader"></div>
<div id="green"></div>
<div id="blue"></div>
<div id="red"></div>
<input type="button" value="submit" class="submit" />

CSS

#green, #red, #blue {
    height:50px;
    width:100px;
}
#green {
    background-color:green;
}
#red {
    background-color:red;
}
#blue {
    background-color:blue;
}

jQuery的

$("#green").click(function () {
    $(".mailheader").css("background", "#a3d300");
    $(".submit").css("background", "#a3d300");
    $(".submit").focus(function () {
        $(".submit").css("background", "#04a6e9");
    })
});
$("#blue").click(function () {
    $(".mailheader").css("background", "#00b4ff");
    $(".submit").css("background", "#00b4ff");
    $(".submit").focus(function () {
        $(".submit").css("background", "#ea0202");
    })
});
$("#red").click(function () {
    $(".mailheader").css("background", "#ff0000");
    $(".submit").css("background", "#ff0000");
    $(".submit").focus(function () {
        $(".submit").css("background", "#98cf00");
    })
});

jQuery不能更改伪元素的样式

修复(我在主体中或其他位置使用<style>标记将.html()函数用于:focus的样式):

<script>
    ...
    $(".submit").css("background","#ff0000");
    $("body style.changeColor").html("
        .submit:focus {background: #ea0202};
    ");
    ...
</script>
<body>
    <style class="changeColor">
    </style>
</body> 

我就是您,我宁愿将所有其他.css()函数更改为.html()字符串内的文本。

$("body style.changeColor").html("
    ...
    .submit {background: #ff0000};
    .submit:focus {background: #ea0202};
");

您直接在元素上设置样式。 为什么不在元素上设置CSS类,并通过CSS处理所有更改。 那更干净,更容易使用。

例如。 单击“ #green”时,将一个类“ Green”添加到提交按钮。 (请参阅http://api.jquery.com/addClass/ )(确保删除其他类)

然后,在CSS中,您可以设置#MySubmitButton.Green {..您的绿色样式..}并使用您喜欢的所有伪CSS类。 #MySubmitButton.Green:hover {color:#FF00FF;}之类的东西

希望这可以帮助...

暂无
暂无

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

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