2013-02-06 111 views
1

我在導航欄上有一個Twitter Bootstrap下拉菜單,當我點擊它並且上/下光標鍵正常工作時,它會正確打開。

但是,如果我在keydown或keyup事件處理程序中使用: $('#menu').dropdown('toggle');打開相同的菜單,菜單將正確打開/關閉,但上/下光標鍵不起作用。實際上下拉菜單​​事件不會觸發。

下面是HTML和Javascript:

<ul class="nav"> <!-- "KB Menu" --> 
    <li class="dropdown kb_menu hideit"> 
     <a href="#" class="dropdown-toggle" data-toggle="dropdown">Knowledge Bases<b class="caret"></b></a> 
     <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel" id="kb_menu"> 
     </ul> 
    </li> 
</ul> 


$(document).on('keydown', function(event){ 
    if (event.ctrlKey){ 
     if (event.keyCode == 191){ // Ctrl+/ = 191 
      $('#kb_menu').dropdown('toggle'); 
     } 
    } 
}); 

我已經試過所有我能想到無濟於事爲止。

+0

請你發佈你正在使用的代碼? –

+0

@AdamTaylor,完成 – nevf

回答

1

添加以下行$('#kb_menu').dropdown('toggle')後:

$('#kb_menu').find('li:first > a').focus(); 
+0

神奇的是,解決了這個問題。我試過'''$('#kb_menu')。focus()'''無濟於事。 TBS切換功能也調用焦點(),但顯然鼠標點擊發揮作用。看起來像dropdown.toggle()應該執行'''$('#kb_menu')。find('li:first> a')。focus();'''第一個菜單項,而點擊不。無論如何非常感謝。 – nevf

+0

奇怪的是,沒有爲我工作...... –

+0

添加類「open」也有竅門。在你的情況'$(「#kb_menu」)。addClass(「open」)' –