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实现自定义标签
May 08 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
Jun 09 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
Oct 22 Javascript
jquery实现的横向二级导航效果代码
Aug 26 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
浅析ES6的八进制与二进制整数字面量
Aug 30 Javascript
jquery.validate表单验证插件使用方法解析
Nov 07 Javascript
使用JavaScript触发过渡效果的方法
Jan 19 Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 Javascript
webpack的pitching loader详解
Sep 23 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
如何用JS实现网页瀑布流布局
Apr 24 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
JAVA/JSP学习系列之二
2006/10/09 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
arguments对象
2006/11/20 Javascript
jquery的$(document).ready()和onload的加载顺序
2010/05/26 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
2010/06/21 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
angular+ionic 的app上拉加载更新数据实现方法
2017/01/16 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
微信小程序点击控件修改样式实例详解
2017/07/07 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
如何去除vue项目中的#及其ie9兼容性
2018/01/11 Javascript
vue-cli配置环境变量的方法
2018/07/09 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
谈谈如何手动释放Python的内存
2016/12/17 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
python datetime中strptime用法详解
2019/08/29 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
python学生信息管理系统实现代码
2019/12/17 Python
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
美国孩之宝玩具官网:Hasbro Pulse
2019/06/24 全球购物
电气工程师岗位职责
2014/01/01 职场文书
共产党员公开承诺书
2014/03/25 职场文书
2014-2015学年工作总结
2014/11/27 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
结婚典礼主持词
2015/06/29 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书