JS组件Bootstrap dropdown组件扩展hover事件


Posted in Javascript onApril 17, 2016

bootstrap导航条当中dropdown组件用得特别频繁,本文就为大家介绍bootstrap中的dropdown组件扩展hover事件,具体内容如下

JS组件Bootstrap dropdown组件扩展hover事件

如何实现这个hover事件呢,其实在dropdown组件的点击事件的基础上很好完成的。细心者可以发现,下拉框出现时,其父级会有一个open的class属性。我们只需要监听hover事件时,给父级增加或删除open类就可以了。

boostrap-hover-dropdown.js插件,托管在github上的代码网址:查看

下面是完整的js插件代码:

// bootstrap响应式导航条<br>;(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出错。

可选参数
delay: (可选参数) 在毫秒的延迟。这是等待的时间之前关闭下拉当鼠标不再在下拉菜单或按钮/导航项目,激活它。默认值 500。
instantlyCloseOthers: (可选参数) 一个布尔值,如果为真,将立即关闭所有其他下拉菜单的使用当您启动一个新的选择器匹配导航。默认值 true。

加上以上js代码后,此时效果还实现不了,因为我们还需要再做一步,就是给元素加上data-*属性:

data-hover="dropdown"
完整的HTML元素代码:

<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown"></a>

可以通过数据属性设置选项,也可以通过data-delay和data-close-others来设置选项
<a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="1000" data-close-others="false"></a>

当然,还有最简单的方法,那就是用css的hover控制

[/code].nav> li:hover .dropdown-menu {display: block;}[/code]
这样一句代码也能实现想要的hover效果,只不过如果在hover的时候点击组件,再去hover另一个组件就会出现如下效果:

JS组件Bootstrap dropdown组件扩展hover事件

如果大家还想深入学习,可以点击这里进行学习,再为大家附两个精彩的专题:Bootstrap学习教程 Bootstrap实战教程

以上就是为大家分享的Bootstrap dropdown组件扩展hover事件使用方法,希望对大家熟练掌握hover事件有所帮助。

Javascript 相关文章推荐
通过JAVAScript实现页面自适应
Jan 19 Javascript
Javascript下的keyCode键码值表
Apr 10 Javascript
thinkphp中常用的系统常量和系统变量
Mar 05 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
Nov 30 Javascript
Vue2.x中的Render函数详解
May 30 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 Javascript
详解Vue源码中一些util函数
Apr 24 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 Javascript
基于javascript实现移动端轮播图效果
Dec 21 Javascript
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
理解javascript对象继承
Apr 17 #Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
Apr 17 #Javascript
js如何准确获取当前页面url网址信息
Sep 13 #Javascript
基于javascript实现图片切换效果
Apr 17 #Javascript
非常棒的jQuery图片轮播效果
Apr 17 #Javascript
jQuery实现的倒计时效果实例小结
Apr 16 #Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 #Javascript
You might like
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
强制设为首页代码
2006/06/19 Javascript
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
JS 实现BASE64_ENCODE和BASE64_DECODE(实例代码)
2013/11/13 Javascript
jquery的live使用注意事项
2014/02/18 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
关于Google发布的JavaScript代码规范你要知道哪些
2018/04/04 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
python文件读写并使用mysql批量插入示例分享(python操作mysql)
2014/02/17 Python
Python中模块string.py详解
2017/03/12 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
宿舍标语大全
2014/06/19 职场文书
副总经理岗位职责
2015/02/02 职场文书
正规借条模板
2015/05/26 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
创业计划书之面包店
2019/09/17 职场文书
导游词之西递宏村
2019/12/10 职场文书