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中的其他对象
Jan 16 Javascript
IE8 下的Js错误HTML Parsing Error...
Aug 14 Javascript
使用jspdf生成pdf报表
Jul 03 Javascript
jQuery基于ajax实现带动画效果无刷新柱状图投票代码
Aug 10 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
给easyui datebox扩展一个清空的实例
Nov 09 Javascript
BootStrap中
Dec 10 Javascript
Bootstrap table 定制提示语的加载过程
Feb 20 Javascript
React 组件间的通信示例
Jun 14 Javascript
微信小程序websocket实现聊天功能
Mar 30 Javascript
Angular实现svg和png图片下载实现
May 05 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 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
swfupload 多文件上传实现代码
2008/08/27 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
Angular ui-roter 和AngularJS 通过 ocLazyLoad 实现动态(懒)加载模块和依赖
2018/11/25 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
JS实现轮播图效果
2020/01/11 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
python遍历数组的方法小结
2015/04/30 Python
Django自定义分页效果
2017/06/27 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
荷兰和比利时时尚鞋店:Van Dalen
2018/04/23 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
函授大学生自我鉴定
2014/02/05 职场文书
精彩的广告词
2014/03/19 职场文书
员工离职感谢信
2015/01/22 职场文书
美丽人生观后感
2015/06/03 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python
在虚拟机中安装windows server 2008的图文教程
2022/06/28 Servers