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 回答