2016-03-08 5 views
-2

У меня есть 2 кнопки. Я хочу изменить фоновый цвет только активной кнопки. Я написал J запрос, который, как это:Изменить цвет фона активной кнопки

$('button').click(function() { 
 
    var value = $(this).attr('class'); 
 
    alert(value); 
 
    if (value == "menu") { 
 
     $(this).removeClass("current"); 
 
     $(this).addClass("current"); 
 
    } 
 

 
});
.current { 
 
    background - color: blue; 
 
    color: white; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class="menu" type="button" class="btn buttn">All</button> 
 
<button class="menu" type="button" class="btn buttn">Tag1</button>

Когда я нажав на кнопку свойства CSS не претендует. Может ли кто-нибудь сказать мне, где я делаю неправильно?

+1

почему вы используете два атрибута класса в том же элементе ?? –

ответ

4

ошибки в CSS:

Оно должно как: background-color: blue; вместо background - color: blue;. Удалить место от background - color

И укажите JQuery plugins перед кодом JQuery.

Fiddle

И если вы хотите цвет только для активного изменения класса JQuery, как следующее:

Вместо $(this).removeClass("current"); использование $('.menu').removeClass("current"); для класса удаления.

$('button').click(function() { 
    var value = $(this).attr('class'); 
    alert(value); 
    if (value == "menu") { 
     $('.menu').removeClass("current"); 
     $(this).addClass("current"); 
    } 

}); 

Updated Fiddle

+0

извините, что это была моя ошибка ввода. CSS правильный. –

+0

@GauravTiwari Итак, теперь он работает. Добавляете ли вы Jquery-плагины? – ketan

+1

нет его не работает. –

0

$('button').click(function() { 
 
    var value = $(this).attr('class'); 
 
    alert(value); 
 
    if (value == "menu") { 
 
    $(this).siblings().removeClass("current"); 
 
    $(this).addClass("current"); 
 
    } 
 

 
});
.current { 
 
    background-color: blue; 
 
    color: white; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button class="menu" type="button" class="btn buttn">All</button> 
 
<button class="menu" type="button" class="btn buttn">Tag1</button>

Если есть только две кнопки, вы можете попробовать с помощью .siblings(), чтобы выбрать кнопку, вы удалите класс от

+0

Я пробовал ваше решение, но оно не работает. Это не добавление текущего класса. –

+0

Как вы можете сказать, что он не добавляет, когда кнопка меняет внешний вид, вы можете снова проверить @GauravTiwari – guradio

+0

ваш код работает здесь нормально, но когда я копирую тот же код и заменяю его своим кодом, тогда его не работает. Я не знаю почему? –

0

попробовать Также

$('button').on('click', function() { 
    var value = $(this).attr('class'); 
    alert(value); 
    if (value == "menu") { 
    $(this).siblings().removeClass("current"); 
    $(this).addClass("current"); 
    } 

}); 

и изменить цвет фона CSS - цвет для фона цвет

0

Попробуйте этот код

$('button').click(function() {  
     if ($(this).attr('class').toLowerCase()== "menu") { 
    $('.menu').removeClass("current"); 
      $(this).addClass("current"); 
     } 
    }); 

CSS класс

.current { 
    background-color: blue; // also change here 
    color: white; 
} 
Смежные вопросы