2013-10-27 26 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

變化click事件之後的按鈕發射的CSS這樣,

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

而且在你提到的代碼的最後一部分$('button')指向文檔中的所有按鈕。這就是爲什麼所有按鈕樣式都是在點擊按鈕時更改的原因。

Demo