jquery UI Datepicker时间控件冲突问题解决


Posted in Javascript onDecember 16, 2016

公司里的项目由于发展较快,很多东西都没有好好梳理一下,以至于有很多的潜在的问题。
最近就遇到了一个比较坑的问题。datepicker
 有两个插件库中的datepicker插件比较有名。一个是jQuery-UI,一个是bootstrap。两个的api网址分别是

然而在项目中很不巧的两个库都用到了。然后就出现了以下情况:http://jqueryui.com/datepicker/   和  http://bootstrap-datepicker.readthedocs.io/en/latest/index.html

jquery UI Datepicker时间控件冲突问题解决

平时根本不知道我自己用的到底是哪个组件。

主要的问题是,要是你们两个组件能一样的话,我也就没什么问题了。两个组件在各种细节处完全不同。

这次的问题是 我的datepicker框被遮住了,具体如下图(上面的年份切换不见了):

        jquery UI Datepicker时间控件冲突问题解决

找了一下发现是在渲染组件的时候,给自动的加上了z-index:10,然后就被上面fixed的顶部条给遮住了。然而这种情况并不是必现的,在每个人电脑上出现的情况不同,在我看来就是先加载的是谁的组件造成的。(按理来说项目打包后是按照index.html文件中引用的顺序排的,应该也是相同的调用顺序,但是就是在一部分电脑上会出现顺序反过来。有大神能解答么?)

于是为了确定加载的是哪个,我写了下面的代码进行试验:

// 初始化日期控件
var $buyDate = $("input#abc");
var buyDateDatepicker = $buyDate.datepicker({
 language: "zh-CN",
 format: "yyyymm",
 minViewMode: "months",
 autoclose: true,
 onSelect: function() {
  console.log("a");
 },
 onClose: function() {
  console.log("b");
 }
});
$buyDate.on("show", function() {
 $(".datepicker.datepicker-dropdown.dropdown-menu").css("z-index", 1000);
});

这其中大多数都是公用的,其中onSelect、onClose是jQuery-UI的,on绑定的show事件是bootstrap的。

但是跑了一下之后,让我比较吃惊,一个都没有执行,全都没有用。然后静下来仔细考虑了一下,应该是这样。

1、先执行的是bootstrap的组件,先渲染了一遍。

2、然后又让jQuery-UI渲染了一遍,但是并没有覆盖之前的组件。

3、再执行了show事件的绑定。然而这个时候被jQuery-UI重新渲染过了,是读取不到监听事件的,随意也失效了。

我估计,在别人的电脑上,情况反了过来,他们先执行的是jQuery-UI的组件就是可以的。

我在网上都没有查到过其他的人写过相关的冲突的情况。有没有人遇到过,提供一下坑。以后避免踩坑。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE JS无提示关闭窗口不提示的方法
Apr 29 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
Nov 11 Javascript
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
Js注册协议倒计时的小例子
Jun 24 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
微信小程序 Page()函数详解
Oct 17 Javascript
js闭包学习心得总结
Apr 17 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
May 11 Javascript
Bootstrap-table自定义可编辑每页显示记录数
Sep 07 Javascript
用vue-cli开发vue时的代理设置方法
Sep 20 Javascript
基于vue-upload-component封装一个图片上传组件的示例
Oct 16 Javascript
详解jQuery简单的表单应用
Dec 16 #Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 #Javascript
简单三步实现报表页面集成天气
Dec 15 #Javascript
jQuery Validate让普通按钮触发表单验证的方法
Dec 15 #Javascript
JavaScript中定义对象原型的两种使用方法
Dec 15 #Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
Dec 15 #Javascript
javascript数组去重方法分析
Dec 15 #Javascript
You might like
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
PHP 压缩文件夹的类代码
2009/11/05 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
javascript实现表单验证
2016/01/29 Javascript
浅谈js数组和splice的用法
2016/12/04 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
djang常用查询SQL语句的使用代码
2019/02/15 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
python二元表达式用法
2019/12/04 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
2020/03/30 Python
python 自动识别并连接串口的实现
2021/01/19 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
南威尔士家居商店:Leekes
2016/10/25 全球购物
Java的基础面试题附答案
2016/01/10 面试题
什么是SCM(软件配置管理)
2014/08/16 面试题
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
优秀班干部事迹材料
2014/01/26 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
党员作风建设自查报告
2014/10/23 职场文书
送达通知书
2015/04/25 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书