使用jquery动态改变背景颜色
Changing background color dynamically with jquery
现在我的页面有一个对象列表的一部分。当你把鼠标悬停在它们上面时,背景会变成淡黄色,当你把鼠标移开时,背景会变回白色。我希望其中一个对象在满足条件时变为绿色背景,如果不满足则返回正常。
我有一个问题:如果满足条件,它就改变颜色,如果不满足,我就把它设置回白色。但是现在浅黄色的鼠标悬停不起作用了。其余部分变成黄色,但那一部分保持白色。我不知道如何"撤销"我的绿色变化,以保持鼠标悬停/鼠标移出正常工作。任何帮助吗?这是我的代码。
if($myID.text() === schedule.content().myId){
$myID.css("background-color", "#AEAF93");
$stn.css("background-color", "#AEAF93");
$miles.css("background-color", "#AEAF93");
$worktag.css("background-color", "#AEAF93");
}else{
$myID.css("background-color", "#FFFFFF");
$stn.css("background-color", "#FFFFFF");
$miles.css("background-color", "#FFFFFF");
$worktag.css("background-color", "#FFFFFF");
}
$('#chevron').on('click', function() {
if($myID.text() === schedule.content().myId){
$myID.css("background-color", "#AEAF93");
$stn.css("background-color", "#AEAF93");
$miles.css("background-color", "#AEAF93");
$worktag.css("background-color", "#AEAF93");
}else{
$myID.css("background-color", "#FFFFFF");
$stn.css("background-color", "#FFFFFF");
$miles.css("background-color", "#FFFFFF");
$worktag.css("background-color", "#FFFFFF");
}
});
$sideBar.find('.myList').bind("mouseover", function(){
var color = $(this).css("background-color");
$(this).css("background", "#fffccc");
$(this).bind("mouseout", function(){
$(this).css("background", "#fff");
});
});
试试这个:
var bg = "#FFFFFF";
if($myID.text() === schedule.content().myId) {
bg = "#AEAF93";
}
$myID.css("background-color", bg);
$stn.css("background-color", bg);
$miles.css("background-color", bg);
$worktag.css("background-color", bg);
/*
the above can be done in one line :
$("#element1,#element2,#element3,#element4").css("background-color", bg);
*/
$('#chevron').on('click', function() {
$myID.css("background-color", bg);
$stn.css("background-color", bg);
$miles.css("background-color", bg);
$worktag.css("background-color", bg);
/*
the above can be done in one line :
$("#element1,#element2,#element3,#element4").css("background-color", bg);
*/
});
$sideBar.find('.myList').bind("mouseover", function(){
$(this).css("background", "#fffccc");
}).bind("mouseout", function(){
$(this).css("background", bg);
});
这里的问题似乎是鼠标悬停和点击相互冲突因为显然鼠标悬停会先触发然后onclick会触发所以除非你离开并返回它不会再次触发鼠标悬停
Try this maybe
$("div input").hover(function() {
//Do you
});
终于找到我的答案了
CSS.highlightedClass{
background-color: #AEAF93;
}
JAVASCRIPT //if condition
if($td_ID.text() === schedule.content().idInFirstColumn){
$2nd_tr.addClass("highlightedClass");
}else{
if($2nd_tr.hasClass("highlightedClass")){
$2nd_tr.removeClass("highlightedClass");
}
}
$('#viewResultsButton').on('click', function(){
if($td_ID.text() === schedule.content().idInFirstColumn){
$2nd_tr.addClass("highlightedClass");
}else{
if($2nd_tr.hasClass("highlightedClass")){
$2nd_tr.removeClass("highlightedClass");
}
}
});
//else condition
if($td_ID.text() === schedule.content().idInFirstColumn){
$tr.addClass("highlightedClass");
}else{
if($tr.hasClass("highlightedClass")){
$tr.removeClass("highlightedClass");
}
}
//outside of huge if/else/for loop mess.
$('#viewResultsButton').on('click', function(){
var flag= false;
$('#alteratePlan > tbody > tr').each(function() {
$td_ID = $(this).find('.td_id');
if($td_ID.text() === ''){
if(flag === true){
$(this).addClass("highlightedClass");
flag= true;
}
}else{
if($td_ID.text() === schedule.content().idInFirstColumn){
if($(this).hasClass("highlightedClass")){
flag= true;
}else{
$(this).addClass("highlightedClass");
flag= true;
}
}else{
flag= false;
if($(this).hasClass("highlightedClass")){
$(this).removeClass("highlightedClass");
}
}
}
});
});
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用jquery更改html中的背景颜色
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- JS幻灯片与CSS背景颜色变化
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- Javascript通过列表项的函数和css来更改背景颜色
- Javascript没有从数组中选择背景颜色
- 使用圆中的数组更改背景颜色项目
- 如何用jquery动画改变背景颜色,就像一个过渡
- 使用jquery交换并保存背景颜色
- j查询如何设置/取消设置下拉菜单的背景颜色
- 使用angularjs根据时间更改背景颜色
- 设置Dojo量表的背景颜色
- javascript样式的背景颜色在设置时闪烁.ASP.NET
- 使用javascript更改任意文本的背景颜色
- 在用Javascript更改背景颜色后:hover don'不要改变颜色
- 图像内部的透明背景颜色不受影响
- jQuery mobile-动态更改ui页面背景颜色
- 切换按钮的背景颜色
- JavaScript更改类的背景颜色