2013-10-27 2 views
1

у меня есть 25 кнопок, как это: это в OnClick с JQuery

<button class="Bouton_Clavier" onclick="Click_Bouton('Bouton-Name')"> 
    Bouton-Name</button> 

Я хочу изменить стиль кнопки, когда я нажимаю на (только форт нажал кнопку).

Таким образом, функция:

function Click_Bouton(Nom) 
{ 
    $(this).removeClass('Bouton_Clavier').addClass('Bouton_Clavier_Select'); 
} 

Но это не работает.

Если изменить функцию с:

function Click_Bouton(Nom) 
{ 
    $('button').click(function(){ $('button').removeClass('Bouton_Clavier') 
    .addClass('Bouton_Clavier_Select'); 
    }); 
} 

Все кнопки стиля изменяются и его работу после 2 клика.

Но мне нужно изменить только стиль нажатой кнопки.

ответ

2

Это потому, что this не настроен так, как вы думаете.

<button class="Bouton_Clavier" onclick="Click_Bouton.call(this, 'Bouton-Name')"> Bouton-Name </button> 

Кроме того, я чувствую себя обязанным рекомендовать не использовать onclick=, и вместо того, чтобы с помощью $.click.

О, и вы, кажется, ничего не делаете с вашим аргументом Dom.

3

Либо вручную установить контекст, как Paul Draper did in his answer или (лучше) не использовать встроенные обработчики событий:

$(".Bouton_Clavier").click(function() { 
    $(this).removeClass('Bouton_Clavier').addClass('Bouton_Clavier_Select'); 
}); 
0

Изменить кнопку CSS после события щелчка выстрелил так,

$(".Bouton_Clavier").click(function(){ 
    $(this).removeClass('Bouton_Clavier').addClass('Bouton_Clavier_Select'); 
}); 

И в в последней части вашего кода вы указываете $ ('button'), который указывает на все кнопки в вашем документе. Вот почему все кнопки стилей изменяются при нажатии кнопки.

Demo

Смежные вопросы