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 相关文章推荐
js select常用操作控制代码
Mar 16 Javascript
将文本输入框内容加入表中的js代码
Aug 18 Javascript
js 上下左右键控制焦点(示例代码)
Dec 14 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 Javascript
JQuery和HTML5 Canvas实现弹幕效果
Jan 04 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
Javascript ES6中数据类型Symbol的使用详解
May 02 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
Node.js 使用jade模板引擎的示例
May 11 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 Javascript
vue相关配置文件详解及多环境配置详细步骤
May 19 Javascript
简单了解vue 插值表达式Mustache
Jul 22 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
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
PHP Class&Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
nginx下安装php7+php5
2016/07/31 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
JS选取DOM元素的简单方法
2016/07/08 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
Python的迭代器和生成器
2015/07/29 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
Python设计密码强度校验程序
2020/07/30 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
世界上最大的艺术社区:SAA
2020/12/30 全球购物
制药工程专业应届生求职信
2013/09/24 职场文书
夏洛特的网观后感
2015/06/15 职场文书
工作态度怎么写
2015/06/25 职场文书
创业计划书之酒店
2019/08/30 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
python 实现德洛内三角剖分的操作
2021/04/22 Python
MySQL分区表实现按月份归类
2021/11/01 MySQL
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电