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对象及属性
Feb 13 Javascript
用jscript实现新建word文档
Jun 15 Javascript
找到了一篇jQuery与Prototype并存的冲突的解决方法
Aug 29 Javascript
利用javascript实现一些常用软件的下载导航
Aug 03 Javascript
用js解决数字不能换行问题
Aug 10 Javascript
JS自调用匿名函数具体实现
Feb 11 Javascript
jQuery中parent()方法用法实例
Jan 07 Javascript
JavaScript中使用concat()方法拼接字符串的教程
Jun 06 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
vue实现自定义日期组件功能的实例代码
Nov 06 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 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
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
tp5(thinkPHP5框架)captcha验证码配置及验证操作示例
2019/05/28 PHP
如何制作浮动广告 JavaScript制作浮动广告代码
2012/12/30 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
javascript中new Array()和var arr=[]用法区别
2017/12/01 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
微信小程序数据存储与取值详解
2018/01/30 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
独特的python循环语句
2016/11/20 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Django使用详解:ORM 的反向查找(related_name)
2018/05/30 Python
python调用百度语音识别api
2018/08/30 Python
python爬虫之自制英汉字典
2019/06/24 Python
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
大学生党课思想汇报
2013/12/29 职场文书
远程培训的心得体会
2014/09/01 职场文书
软环境建设心得体会
2014/09/09 职场文书
2015年三万活动总结
2015/03/25 职场文书
春晚观后感
2015/06/11 职场文书
教育读书笔记
2015/07/02 职场文书
导游词之长城八达岭
2019/09/24 职场文书