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 相关文章推荐
javascript数组去掉重复
May 12 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
使用JavaScript 实现的人脸检测
Mar 24 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
Jun 18 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
Jan 04 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
解析浏览器端的AJAX缓存机制
Jun 21 Javascript
AngularJS中的DOM操作用法分析
Nov 04 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
Nov 25 Javascript
深入了解Vue3模板编译原理
Nov 19 Vue.js
原生JS运动实现轮播图
Jan 02 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
php生成略缩图代码
2012/07/16 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
JS Timing
2007/04/21 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
安装python及pycharm的教程图解
2019/10/10 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
使用HTML5的链接预取功能(link prefetching)给网站提速
2012/12/13 HTML / CSS
来自世界上最好大学的在线课程:edX
2018/10/16 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
工作保证书范文
2014/04/29 职场文书
县级文明单位申报材料
2014/05/23 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python