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 相关文章推荐
再谈ie和firefox下的document.all属性
Oct 21 Javascript
DIV菜单层实现代码
Nov 19 Javascript
jQuery设置和获取HTML、文本和值示例
Jul 08 Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
javascript实现连续赋值
Aug 10 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
详解Node全局变量global模块
Sep 28 Javascript
详解使用webpack构建多页面应用
Dec 21 Javascript
浅谈js获取ModelAndView值的问题
Mar 28 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
Apr 10 Javascript
Vue v-for循环之@click点击事件获取元素示例
Nov 09 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 socket并借助telnet实现简单的聊天程序
2013/06/18 PHP
php curl模拟post提交数据示例
2013/12/31 PHP
php获取指定日期之间的各个周和月的起止时间
2014/11/24 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
原来Jquery.load的方法可以一直load下去
2011/03/28 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
js如何编写简单的ajax方法库
2017/08/02 Javascript
vue实现与安卓、IOS交互的方法
2018/11/02 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python守护进程和脚本单例运行详解
2017/01/06 Python
Python批量查询域名是否被注册过
2017/06/21 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
简单的Python人脸识别系统
2020/07/14 Python
python中delattr删除对象方法的代码分析
2020/12/15 Python
Python 实现进度条的六种方式
2021/01/06 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
年会邀请函范文
2015/01/30 职场文书
班主任寄语2016
2015/12/04 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
SpringBoot快速入门详解
2021/07/21 Java/Android
Python加密与解密模块hashlib与hmac
2022/06/05 Python