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,mootools,dojo)使用适合自己的编程别名命名
Sep 14 Javascript
js判断是否为数组的函数: isArray()
Oct 30 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
JavaScript常用字符串与数组扩展函数小结
Apr 24 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 Javascript
JS异步函数队列功能实例分析
Nov 28 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
Mar 04 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 Javascript
Node 搭建一个静态资源服务器的实现
May 20 Javascript
JS实现图片切换特效
Dec 23 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
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
vue2.0 路由模式mode="history"的作用
2018/10/18 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
JS出现404错误原理及解决方案
2020/07/01 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python手机号码归属地查询代码
2016/05/04 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
简单实现Python爬取网络图片
2018/04/01 Python
Python的几种主动结束程序方式
2019/11/22 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
CSS3实现银灰色动画效果的导航菜单代码
2015/09/01 HTML / CSS
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
Java程序员综合测试题
2014/04/25 面试题
文员求职信
2014/07/15 职场文书
重点工程汇报材料
2014/08/27 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
答谢酒会主持词
2015/07/02 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
css3应用示例:新增的选择器
2022/03/16 HTML / CSS