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 hasFocus使用实例
Jun 29 Javascript
JavaScript中的类数组对象介绍
Dec 30 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
分享两款带遮罩的jQuery弹出框
Dec 30 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
May 10 Javascript
arcgis for js 修改infowindow样式的方法
Nov 02 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
Aug 22 Javascript
深入理解js A*寻路算法原理与具体实现过程
Dec 13 Javascript
ES6 迭代器与可迭代对象的实现
Feb 11 Javascript
vue 中 命名视图的用法实例详解
Aug 14 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
May 23 Javascript
微信小程序实现简单购物车功能
Dec 30 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
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
php session安全问题分析
2011/06/24 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
PHP不用递归遍历目录下所有文件的代码
2014/07/04 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
Javascript - HTML的request类
2006/07/15 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
javascript常用对话框小集
2013/09/13 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
简单介绍Python中的JSON模块
2015/04/08 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
python多线程http压力测试脚本
2019/06/25 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
夜大毕业自我鉴定
2013/10/11 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
同事打架检讨书
2015/05/06 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL