2013-03-25 3 views
0

В настоящее время я запускаю небольшую функцию JQuery, которая переключает новый класс, если нажата кнопка.JQuery - Toggle Class On Несколько кнопок

$(".button1").click(function() { 

     $(this).toggleClass("button2"); 

    }); 

Это прекрасно работает, однако, моя проблема в том, что у меня есть 5 кнопок в ряд, и я только хочу, чтобы иметь новый класс в то время. На данный момент, если я нажимаю любую из других кнопок, они также получают новый класс. Я хочу, чтобы кто-то нажал на другую кнопку, чтобы удалить класс button2 с исходной кнопки и применить ее только к кнопке с нажатой кнопкой.

Любые мысли о достижении этого?

+0

Итак, вы хотите, чтобы это применило только одну кнопку, которую вы нажали? –

ответ

2

Попробуйте это:

$(".button1").click(function() { 
    $(this).parent().find(".button2").removeClass("button2"); 
    $(this).addClass("button2"); 
}); 
+0

Это будет работать, только если эти кнопки имеют общий родительский контейнер, но в остальном это хорошее решение. –

+0

@MikeBrant Вы правы. Поскольку в этом вопросе нет HTML, я должен был что-то принять. Вы всегда можете заменить '$ (this) .parent()' на '$ (" # buttons_container_id ")' или даже '$ (body)'. Общий вопрос => общий ответ :-) –

+0

Thats точно, что я был после. Существует родительский класс, я должен был включить html. – JPDP

0

Это должно делать то, что вы хотите:

$('.button1').click(function() { 
    $('.button2').removeClass('button2'); 
    $(this).addClass('button2'); 
});