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设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 Javascript
再谈Jquery Ajax方法传递到action(补充)
May 12 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
Mar 29 Javascript
JS去除空格和换行的正则表达式(推荐)
Jun 14 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
Dec 25 Javascript
jQuery Masonry瀑布流插件使用方法详解
Jan 18 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
Jan 21 Javascript
jQuery修改DOM结构_动力节点Java学院整理
Jul 05 jQuery
vue-quill-editor富文本编辑器简单使用方法
Sep 21 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 17 Javascript
详解JavaScript作用域、作用域链和闭包的用法
Sep 03 Javascript
JavaScript逻辑运算符相关总结
Sep 04 Javascript
理解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
不用数据库的多用户文件自由上传投票系统(3)
2006/10/09 PHP
cache_lite试用
2007/02/14 PHP
php 编写安全的代码时容易犯的错误小结
2010/05/20 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
PHP xpath()函数讲解
2019/02/11 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
Django使用httpresponse返回用户头像实例代码
2018/01/26 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python面向对象 反射原理解析
2019/08/12 Python
python3 mmh3安装及使用方法
2019/10/09 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
2020/12/08 Python
python Zmail模块简介与使用示例
2020/12/19 Python
优秀团队申报材料
2014/12/26 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
大班下学期个人总结
2015/02/13 职场文书
2015年党员岗位承诺书
2015/04/27 职场文书
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏