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 相关文章推荐
innerText和innerHTML 一些问题分析
May 18 Javascript
ajax不执行success回调而是执行了error回调
Dec 10 Javascript
js实现收缩菜单效果实例代码
Oct 30 Javascript
jquery 快速回到页首的方法
Dec 05 Javascript
JQUERY简单按钮轮换选中效果实现方法
May 07 Javascript
js中 javascript:void(0) 用法详解
Aug 11 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
bootstrapValidator自定验证方法写法
Dec 01 Javascript
JavaScript基础之AJAX简单的小demo
Jan 29 Javascript
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
使用jQuery给Table动态增加行、清空table的方法
Sep 05 jQuery
js实现tab栏切换效果
Aug 02 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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
常用的PHP数据库操作方法(MYSQL版)
2011/06/08 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
PHP小技巧之函数重载
2014/06/02 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
php实现微信发红包
2015/12/05 PHP
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
jQuery extend()详解及简单实例
2017/05/06 jQuery
js中事件对象和事件委托的介绍
2019/01/21 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
基于Vue的商品主图放大镜方案详解
2019/09/19 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
Vue数字输入框组件示例代码详解
2020/01/15 Javascript
[02:04]2016国际邀请赛中国区预选赛VG.R晋级之路
2016/07/01 DOTA
Python Trie树实现字典排序
2014/03/28 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
html5调用摄像头功能的实现代码
2018/05/07 HTML / CSS
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
党员批评与自我批评
2014/02/12 职场文书
《恐龙》教学反思
2014/04/27 职场文书
公开承诺书格式
2014/05/21 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
汽车销售员工作总结
2015/08/12 职场文书
《鲁滨逊漂流记》之六读后感(4篇)
2019/09/29 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python