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对象学习经验整理
Oct 12 Javascript
javascript模拟地球旋转效果代码实例
Dec 02 Javascript
EasyUI中combobox默认值注意事项
Mar 01 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
Sep 05 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 jQuery
Javascript中click与blur事件的顺序详析
Apr 25 Javascript
详解微信小程序审核不通过的解决方法
Jan 17 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 Javascript
vue 全局环境切换问题
Oct 27 Javascript
jQuery实现飞机大战小游戏
Jul 05 jQuery
Angular CLI发布路径的配置项浅析
Mar 29 Javascript
解决vue中provide inject的响应式监听
Apr 19 Vue.js
详解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 启动时报错的简单解决方法
2014/01/27 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
node.js中的fs.lchown方法使用说明
2014/12/16 Javascript
BootStrap selectpicker
2016/06/20 Javascript
webpack入门必知必会
2017/01/16 Javascript
vue-cli项目中使用echarts图表实例
2018/10/22 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
详解基于Vue/React项目的移动端适配方案
2019/08/23 Javascript
layui数据表格跨行自动合并的例子
2019/09/02 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
Python内置函数dir详解
2015/04/14 Python
Python验证企业工商注册码
2015/10/25 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
详解python持久化文件读写
2019/04/06 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
2019/06/12 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
利用python 读写csv文件
2020/09/10 Python
会计岗位职责
2013/11/08 职场文书
文秘专业个人求职信
2013/12/22 职场文书
会计职业生涯规划书
2014/01/13 职场文书
希特勒的演讲稿
2014/05/23 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
违纪检讨书
2015/01/27 职场文书
授权委托书
2015/01/28 职场文书
小学教师个人总结
2015/02/05 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
四群教育工作总结
2015/08/10 职场文书
《詹天佑》教学反思
2016/02/20 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server