我已經搜索,但無法找到解釋我的問題。顯示操作在按鍵上不起作用,但在點擊功能上起作用
我有一個菜單有三個項目,每個項目都有三個子菜單。我想通過按鍵打開活動菜單項的子菜單。
我可以在$(this).parent().find('.submenu').show();
上實現點擊功能,但它不適用於keydown函數。如果我爲相應的鍵做$('.submenu').show();
,它可以工作,但所有子菜單都會顯示。所以如果有人能夠解釋我不明白的事情,以及我應該怎麼做才能使當前的子菜單顯示在按鍵上,我將非常感激!
這是按鍵的功能:
switch(e.keyCode)
{
// left key
case arrow.left:
break;
// up key
case arrow.up: //this works
$('a:focus').closest('li').prev().find('a.option').focus();
break;
// right key
case arrow.right:
$('.submenu').show(); //this works but shows all the submenus
break;
// down key
case arrow.down: //this works
$('a:focus').closest('li').next().find('a.option').focus();
break;
}
這是點擊功能,其工作原理:
$('a').click(function() {
this.focus();
$(this).parent().find('.submenu').show();
});
這裏是我的代碼小提琴:fiddle
你能添加代碼的事件處理程序。 –
好的,我編輯了這個問題。 – jdo
請加你的標記。如果可以的話,jsfiddle會很好。 – Petroff