Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发


Posted in Javascript onAugust 31, 2016

在使用bootstrap制作后台时用到了响应式导航条,其中dropdown组件更是用的比较多,用的多需要点击的就多,dropdown默认鼠标左键单击才展开,如果使用鼠标放上去(hover)就展开则会省去点击时间,这样能提高效率。

Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发

原本的改造思路是:给dropdown元素绑定hover事件,hover上去的时候,执行该元素的click事件——即把hover同步为click,hover即为click。

但想到与其自己来改造,不如先在网上搜索搜索看看有没有现成的插件,果不其然就搜索到了,托管在github上的代码网址:查看

在这儿就直接把代码复制出来:

;(function($, window, undefined) {
// outside the scope of the jQuery plugin to
// keep track of all dropdowns
var $allDropdowns = $();
// if instantlyCloseOthers is true, then it will instantly
// shut other nav items when a new one is hovered over
$.fn.dropdownHover = function(options) {
// the element we really care about
// is the dropdown-toggle's parent
$allDropdowns = $allDropdowns.add(this.parent());
return this.each(function() {
var $this = $(this).parent(),
defaults = {
delay: 500,
instantlyCloseOthers: true
},
data = {
delay: $(this).data('delay'),
instantlyCloseOthers: $(this).data('close-others')
},
options = $.extend(true, {}, defaults, options, data),
timeout;
$this.hover(function() {
if(options.instantlyCloseOthers === true)
$allDropdowns.removeClass('open');
window.clearTimeout(timeout);
$(this).addClass('open');
}, function() {
timeout = window.setTimeout(function() {
$this.removeClass('open');
}, options.delay);
});
});
};
$('[data-hover="dropdown"]').dropdownHover();
})(jQuery, this);

可以看到作者在插件前面加了个分号;,增加了插件的兼容性,因为可能上一个js代码没写;,如果在此不加分号则可能因为没换行导致js出错。

插件支持HTML元素data-*传参,也支持初始化传参。将此js代码放在bootstrap原本的js代码后面执行即可。

以上所述是小编给大家介绍的Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用JavaScript脚本实现Web页面信息交互
Dec 21 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
Jan 10 Javascript
node+express+ejs制作简单页面上手指南
Nov 26 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
js滚动条平滑移动示例代码
Mar 29 Javascript
一分钟理解js闭包
May 04 Javascript
vue实现ToDoList简单实例
Feb 07 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
webpack之devtool详解
Feb 10 Javascript
node+express框架中连接使用mysql(经验总结)
Nov 10 Javascript
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
Mar 17 Javascript
浅谈JavaScript 覆盖原型以及更改原型
Aug 31 #Javascript
javascript 将共享属性迁移到原型中去的实现方法
Aug 31 #Javascript
使用vue编写一个点击数字计时小游戏
Aug 31 #Javascript
原生js实现tab选项卡切换
Mar 23 #Javascript
jquery的checkbox,radio,select等方法小结
Aug 30 #Javascript
Javascript日期格式化format函数的使用方法
Aug 30 #Javascript
浅析ES6的八进制与二进制整数字面量
Aug 30 #Javascript
You might like
php递归实现无限分类生成下拉列表的函数
2010/08/08 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
jQuery 性能优化指南(2)
2009/05/21 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
vue实现简单图片上传
2020/06/30 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
Python聊天室实例程序分享
2016/01/05 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
2014年冬季防火方案
2014/05/21 职场文书
个人授权委托书样本
2014/09/13 职场文书
全陪导游词
2015/02/04 职场文书
2015年外联部工作总结
2015/04/03 职场文书
幼儿园见习总结
2015/06/23 职场文书
小学一年级数学教学反思
2016/02/16 职场文书
python使用glob检索文件的操作
2021/05/20 Python