1. 程式人生 > >bootstrap插件之dropdown隨筆

bootstrap插件之dropdown隨筆

自己的 才會 想法 對象 生效 鼠標 綁定 效果 這不

雖然一直都沒用過bootstrap,但是作為一個使用率和知名度頗高的開源響應式框架,源碼還是要看的。

bootstrap的插件基本都是以單例模式實現的。bootstrap在插件內部為元素就綁定相應事件,所以可以直接添加相應的類名就實現bootstrap提供的默認效果,如果需要按照自己的想法展現,當然還是得實例化對象然後設置各個參數。

剛開始看下去,發現dropdown居然還綁定了keydown事件,於是迫不及待的測試了一番。結果發現需要先點擊一下下拉元素,dropdown事件才會生效,自己搗鼓了下,發現了問題所在。

打開網頁時,頁面聚焦的元素是HTMLBodyElement,這個時候,你在頁面中任意一個位置按下enter鍵,都是在body元素上觸發鍵盤事件,不會在你鼠標位置上的元素觸發,因為keydown事件只在聚焦的元素上觸發。所以需要你點擊一下拉元素,讓它聚焦,然後鍵盤事件的效果你就能看見了。當然,這個時候,按下enter鍵,你鼠標的位置和聚焦的元素沒有半毛錢關系,你的鼠標就算移出了頁面範圍,按下enter鍵,你還是能在剛剛的點擊的元素上看到下拉框收起、合上、收起、合上...

有人說這是bug,我覺得這不算吧,畢竟keydown的觸發機制如此。

bootstrap插件之dropdown隨筆