私のフィドルを使用して、ロード時にメインメニューボタンの1つを強調表示し、対応するボタンを下部に設定する show() および hide() ようにしました。
私が間違っていると思うのですが、自分自身で理解できないのは、switch ステートメントで$this変数の参照スコープを実行することです。私の場合、 $this はクリックされたボタンの値を指します。これはクラスの名前であると推測されますが、switch ステートメントでは、$thisから ID 名を参照できるかどうかわかりません。私の質問は、私のシナリオで$thisが保持する値は何ですか?
単純化できる場所で多くの重複を見ることができるので、おそらくコードが少ない、実際の例を見るといいでしょう。
$('.menu').click(function () {
if ($(this) != $('.highlight')) {
$(this).addClass('highlight')
.siblings('.menu')
.removeClass('highlight');
}
switch ($this) {
case '#dateMenu':
$('.date-chart').show();
$('.jc-chart').hide();
$('.jp-chart').hide();
$('.ws-chart').hide();
break;
case '#jcMenu':
$('.date-chart').hide();
$('.jc-chart').show();
$('.jp-chart').hide();
$('.ws-chart').hide();
break;
case '#jpMenu':
$('.date-chart').hide();
$('.jc-chart').hide();
$('.jp-chart').show();
$('.ws-chart').hide();
break;
case '#wsMenu':
$('.date-chart').hide();
$('.jc-chart').hide();
$('.jp-chart').hide();
$('.ws-chart').show();
break;
}
});