編集:ホバーしたときに表示するのではなく、色を残したいことがわかりました。シンプルな変更。
まず第一に、これらを CSS クラスに分離する必要があります。
.ZeroValue {
background:'#DF0101';
}
.ValueBetween1And10 {
background:'#FF7C00';
}
.ValueOver8 {
background:'#04B404';
}
.ValueTransparent {
background:transparent !important;
}
$(document).ready()
値に基づいて上記のクラスを追加します。
if(cell_value === 0){
cell.addCLass('ZeroValue');
} else if((cell_value >= 1) && (cell_value <= 10)){
cell.addClass('ValueBetween1And10');
} else if(cell_value >= 8){
cell.addClass('ValueOver8');
}
transparent
次に、ホバーしたときにクラスを動的に追加し、離れるときにクラスを削除します。
cell.on({
mouseenter:function(){
$(this).addClass('ValueTransparent');
},
mouseleave:function(){
$(this).removeClass('ValueTransparent');
}
});
または、各アイテムに固有の色があり、それを一時的に削除したい場合は、関数を作成するだけです:
function classByValue(cell,cell_value){
if(cell_value === 0){
cell.addCLass('ZeroValue');
} else if((cell_value >= 1) && (cell_value <= 10)){
cell.addClass('ValueBetween1And10');
} else if(cell_value >= 8){
cell.addClass('ValueOver8');
}
}
これにより、マウスが入力されたときにクラスがクリアされ、マウスが入力されたときにクラスが再度追加されcell_value
ます。次に、ロード時とときに動的に適用しますmouseleave
。$(document).ready()
:_
cell.each(function(){
classByValue(this,this.val());
});
そしてホバー:
cell.on({
mouseenter:function(){
$(this).removeClass('ZeroValue ValueBetween1And10 ValueOver8');
},
mouseleave:function(){
classByValue($(this),$(this).val());
}
});
これで、目標を達成するための複数の方法が見つかりました。$(this).val()
その特定の の値を適切に反映するように変更する必要があるかもしれませんがcell
、HTML がなければ、それを実際に判断することはできません。
余談ですが、最後のオプション with>= 8
はおそらく再検討する必要があります。なぜなら、8
orの値がそれを起動9
することはないからです。