1

次のような25個のボタンがあります。

<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 回のクリック後に機能します。

しかし、クリックしたボタンのスタイルだけを変更する必要があります。

4

3 に答える 3

3

Paul Draper が回答で行ったように手動でコンテキストを設定するか、(より良い) インライン イベント ハンドラーを使用しないでください。

$(".Bouton_Clavier").click(function () {
  $(this).removeClass('Bouton_Clavier').addClass('Bouton_Clavier_Select');
});
于 2013-10-27T17:38:25.767 に答える
2

それthisは、あなたが思っているように設定されていないからです。

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

onclick=また、 を使用せず、代わりに を使用することをお勧めする義務があると感じてい$.clickます。

ああ、あなたは自分の議論で何もしていないようですDom

于 2013-10-27T17:37:13.910 に答える
0

このようにクリックイベントが発生した後にボタンのCSSを変更し、

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

コードの最後の部分で、ドキュメント内のすべてのボタンを指す$('button')に言及しています。そのため、ボタンのクリック時にすべてのボタンのスタイルが変更されます。

デモ

于 2013-10-27T17:41:05.097 に答える