與我的fiddle,我使它突出顯示一個主菜單按鈕加載和show()和hide()相應的按鈕設置在底部。jQuery - 觸發顯示(),隱藏()按鈕點擊
我認爲是錯誤的,但無法弄清自己是要做的$ this變量的參考範圍在我的switch語句中。在我的情況下,$這指向單擊的按鈕值,我認爲是類的名稱,但在我的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;
}
});
我會想到:'開關(this.id)...情況下( 「wsMenu」)' - 但你可能只是需要隱藏的兄弟姐妹和顯示$此,一旦你設定$ this = $(this) - 並且你需要$(this).hasClass('。highlight') – mplungjan
這裏是'$ this'?我想這應該是'$(this)',這再次沒有道理.. :) – bipen
switch($(this).prop('id'))然後在你的case語句中,刪除#號 – frenchie