.parent は、参照している jQuery オブジェクトの親要素を選択します。この場合は「#container」になります。
したがって、「$(this).parent().find('.button')」は、「#container」要素内のすべての「.button」要素、つまりすべてのボタンを返します。
したがって、JavaScript は期待どおりに機能しません。次のことを試してください。
$('.button').click(function(e){
$('.on').addClass('off'); // add '.off' to the one element that is '.on'
$('.on').removeClass('on'); // remove '.on' from this same element
$(e.target).addClass('on'); // add '.on' to the element clicked
$(e.target).removeClass('off'); //remove '.off' from that element clicked
currentSelected = this;
});
ここでは、'click' 関数にパラメーターとして 'e' を追加します。次に、「e.target」を使用して、クリックされた要素を取得します。また、n 要素に '.on' と '.off' の両方が同時に接続されていないことを確認し、スタイルが互いにオーバーライドされないようにします。