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学习资源站点
Aug 29 Javascript
在javascript中如何得到中英文混合字符串的长度
Jan 17 Javascript
JavaScript中number转换成string介绍
Dec 31 Javascript
使用js画图之正弦曲线
Jan 12 Javascript
JavaScript中实现sprintf、printf函数
Jan 27 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
May 25 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
聊一聊jQuery插件uploadify使用方法
Aug 24 Javascript
js中的触发事件对象event.srcElement与event.target详解
Mar 15 Javascript
Node.js使用supervisor进行开发中调试的方法
Mar 26 Javascript
koa+mongoose实现简单增删改查接口的示例代码
May 13 Javascript
原生JavaScript实现轮播图
Jan 10 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
简化php模板页面中分页代码的解析
2009/02/06 PHP
PHP 输出缓存详解
2009/06/20 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
php读取本地文件常用函数(fopen与file_get_contents)
2013/09/09 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
Javascript hasOwnProperty 方法 & in 关键字
2008/11/26 Javascript
JavaScript中null与undefined分析
2009/07/25 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
vue组件的写法汇总
2018/04/12 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
离线安装Pyecharts的步骤以及依赖包流程
2020/04/23 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
大学生职业规划前言模板
2013/12/27 职场文书
网络编辑职责
2014/03/01 职场文书
主管竞聘书范文
2014/03/31 职场文书
2014年会策划方案
2014/05/11 职场文书
借款担保书范文
2014/05/13 职场文书
宣传标语大全
2014/07/01 职场文书
525心理健康活动总结
2015/05/08 职场文书
党小组意见范文
2015/06/08 职场文书
赤壁观后感(2)
2015/06/15 职场文书