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 相关文章推荐
js 页面刷新location.reload和location.replace的区别小结
Dec 24 Javascript
javascript 节点遍历函数
Mar 28 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
Dec 08 Javascript
javascript数据结构与算法之检索算法
Apr 04 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 Javascript
jQuery实现的导航下拉菜单效果示例
Sep 05 Javascript
完美解决IE9浏览器出现的对象未定义问题
Sep 29 Javascript
nginx+vue.js实现前后端分离的示例代码
Feb 12 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
js删除数组中某几项的方法总结
Jan 16 Javascript
Vue.js实现可编辑的表格
Dec 11 Javascript
Vue性能优化的方法
Jul 30 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版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
php创建图像具体步骤
2017/03/13 PHP
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
jquery+php随机生成红包金额数量代码分享
2015/08/27 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
jQuery Ajax使用FormData对象上传文件的方法
2016/09/07 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
python实现关键词提取的示例讲解
2018/04/28 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
Python numpy数组转置与轴变换
2019/11/15 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
世界汽车零件:World Car Parts
2019/09/04 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
毕业研究生的自我鉴定
2013/11/30 职场文书
《罗布泊,消逝的仙湖》教学反思
2014/03/01 职场文书
花坛标语大全
2014/06/30 职场文书
大学活动总结模板
2014/07/10 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
交通安全教育主题班会
2015/08/12 职场文书
Python开发简易五子棋小游戏
2022/05/02 Python