У меня есть $ (this) .css() много в моем коде ... im new для JS, поэтому я не уверен, что лучший способ удалить это дублирование и сделать мой код чистый ...Как я могу избавиться от дублирования в этом коде
вот ссылка на мою скрипку http://jsfiddle.net/d0okie0612/7Y2Qp/
$(".btn-pvPanels").on('click', function(event) {
var selected;
selected = $(this).val();
if(selected === "on-panel") {
$(this).css({
'background': 'orange',
'color': 'white'
});
$(this).parent().find('.btn-off').css({
'background': '#F1F1F1',
'color': '#8E8D8D'
});
$('.aon_poff').fadeIn('slow');
}
else if(selected === "off-panel") {
$(this).css({
'background': 'orange',
'color': 'white'
});
$(this).parent().find('.btn-on').css({
'background': '#F1F1F1',
'color': '#8E8D8D'
});
$('.aon_poff').fadeOut('slow');
}
else if(selected === "on-accessories") {
$(this).css({
'background': 'orange',
'color': 'white'
});
$(this).parent().find('.btn-on').css({
'background': '#F1F1F1',
'color': '#8E8D8D'
});
}
else if(selected === "on-accessories" && "on-panel") {
$(this).css({
'background': 'orange',
'color': 'white'
});
$(this).parent().find('.btn-on').css({
'background': '#F1F1F1',
'color': '#8E8D8D'
});
alert('hey')
}
});
$(".btn-accessories").on('click', function(event) {
var selected;
selected = $(this).val();
if(selected === "on-accessories") {
$(this).css({
'background': 'orange',
'color': 'white'
});
$(this).parent().find('.btn-off').css({
'background': '#F1F1F1',
'color': '#8E8D8D'
});
$('.aoff_pon').fadeIn('slow');
}
else if(selected === "off-accessories") {
$(this).css({
'background': 'orange',
'color': 'white'
});
$(this).parent().find('.btn-on').css({
'background': '#F1F1F1',
'color': '#8E8D8D'
});
$('.aoff_pon').fadeOut('slow');
}
});
Простейший способ заключается в перемещении этих свойств в классы CSS и при необходимости используйте addClass()/removeClass(). – Derek
Добавление некоторых или утверждений может помочь – Spooks
Почему вы снова и снова назначаете одни и те же стили CSS? Кажется, он нигде не меняется. – Bergi