После того, как пользователь нажимает на строку таблицы, я хочу, чтобы она проверила, является ли цвет фона строки таблицы белым, и если так, она изменит цвет на голубой.
Код, который я использую, не работает.Вот:
$("#tracker_table tr#master").click(function(){
if($(this).css("background-color") == "#FFFFFF") {
$(this).css("background-color", "#C2DAEF");
}
});
Я думаю, что существует что-то не так с моим если оператор. Как я проверяю на значение CSS с помощью jQuery?
Похоже, он возвращается в форме rgb (x, y, z)
, поэтому ваш код должен быть:
$("#tracker_table tr#master").click(function(){
if($(this).css("background-color") == "rgb(255, 255, 255)") {
$(this).css("background-color", "#C2DAEF");
}
});
Edit : При этом я бы посоветовал вам использовать классы вместо непосредственной проверки / установки свойств css. Примерно так:
$("#tracker_table tr#master").click(function(){
if(!$(this).hasClass("selected")) {
$(this).addClass("selected");
}
});
Css:
tr { background-color: #FFFFFF; }
tr.selected { background-color: #C2DAEF; }
Хотя это может работать, фактически вы храните информацию в виде цветов, а затем извлекаете и сравниваете ее позже. Alconja предлагает подход, который будет работать, но в конечном итоге вам, возможно, будет лучше работать с классами, имена которых вы можете определить сами, чтобы они несли соответствующий смысл. Гораздо удобнее и менее хрупко иметь что-то вроде этого:
$('#tracker_table tr#master').click( function(){
if ( $(this).hasClass('something') ) {
$(this).removeClass('something').addClass('something_else');
}
})