bootstrap插件之dropdown随笔

虽然一直都没用过bootstrap,但是作为一个使用率和知名度颇高的开源响应式框架,源码还是要看的。

bootstrap的插件基本都是以单例模式实现的。bootstrap在插件内部为元素就绑定相应事件,所以可以直接添加相应的类名就实现bootstrap提供的默认效果,如果需要按照自己的想法展现,当然还是得实例化对象然后设置各个参数。

刚开始看下去,发现dropdown居然还绑定了keydown事件,于是迫不及待的测试了一番。结果发现需要先点击一下下拉元素,dropdown事件才会生效,自己捣鼓了下,发现了问题所在。

打开网页时,页面聚焦的元素是HTMLBodyElement,这个时候,你在页面中任意一个位置按下enter键,都是在body元素上触发键盘事件,不会在你鼠标位置上的元素触发,因为keydown事件只在聚焦的元素上触发。所以需要你点击一下拉元素,让它聚焦,然后键盘事件的效果你就能看见了。当然,这个时候,按下enter键,你鼠标的位置和聚焦的元素没有半毛钱关系,你的鼠标就算移出了页面范围,按下enter键,你还是能在刚刚的点击的元素上看到下拉框收起、合上、收起、合上...

有人说这是bug,我觉得这不算吧,毕竟keydown的触发机制如此。

猜你喜欢

转载自www.cnblogs.com/lfqin/p/9249882.html
今日推荐