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 相关文章推荐
jQuery 名称冲突的解决方法
Apr 08 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
Jan 15 Javascript
JS中图片缓冲loading技术的实例代码
Aug 29 Javascript
谈谈impress.js初步理解
Sep 09 Javascript
javascript检查某个元素在数组中的索引值
Mar 30 Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
Sep 18 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 Javascript
Layer弹出层动态获取数据的方法
Aug 20 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
Aug 03 Javascript
vue中渲染对象中属性时显示未定义的解决
Jul 31 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php object转数组示例
2014/01/15 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
Dojo Javascript 编程规范 规范自己的JavaScript书写
2014/10/26 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
js性能优化技巧
2015/11/29 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
微信小程序发送短信验证码完整实例
2019/01/07 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
JavaScript array常用方法代码实例详解
2020/09/02 Javascript
[01:01:52]DOTA2-DPC中国联赛正赛 iG vs LBZS BO3 第一场 3月4日
2021/03/11 DOTA
浅谈编码,解码,乱码的问题
2016/12/30 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
python解包概念及实例
2021/02/17 Python
CSS Grid布局教程之什么是网格布局
2014/12/30 HTML / CSS
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
上班睡觉检讨书
2014/01/09 职场文书
新年联欢会主持词
2014/03/27 职场文书
生活小常识广播稿
2014/09/16 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
学习保证书100字
2015/02/26 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
Java 超详细讲解数据结构中的堆的应用
2022/04/02 Java/Android
frg-100简单操作(设置)说明
2022/04/05 无线电