使用jquery ui的datepicker开发课程日历

这两天在开发某商学院的网站,里面有涉及到课程的模块,客户希望在网站的首页显示一个日历, 在有课程的日期加上显眼的标识,使网站用户一眼看到日历后就能知道哪天商学院有课程以便他们安 排时间报名修读。

这个功能挺有意思的,符合本人及非常小器公司一直所坚持的“为客户创造价值”的理 念,它真正从用户的角度思考问题了,客户真正需要的、实用的东西是我最喜欢开发的产品因为我觉 得不能为客户创造价值的产品最终必定不能为自己创造价值,这个世界是讲因果的。

刚开始的时候感觉用第三方的东西挺麻烦的,一来要研究别人的接口,规范等一大堆的东西,有什 么地方满足不了要求的时候就更加麻烦了,要去读懂别人的源码再修改,还不如自己全新开发来得直 接简单,但日历这东西,说复杂不复杂,但要做得好也有一定工作量,利用google快速了解了目前几 个比较知名的轻量级日历插件的接口、提供的配置项及功能情况后,决定不重复制造轮子,在jquery ui的datepicker控件上进行开发,因为它虽然功能简单,但提供的配置项比较灵活,不需要经过大调 整就能实现想要的效果,而且自备多种UI风格,相信总有一款能很好地与网站风格相融合,呵呵。废 话不多说了,下面来看看实现的过程吧,希望能被有需要的朋友借鉴,同时欢迎各位大神提出宝贵建 议。首先看看效果:图中2013年4月30号被一个红色的圈圈住了,这是一个设计时的一个约定,日期被 圈住说明当天是有课程的,点击这个日期的时候再列出这天有哪些课程。

UI的风格其实就是jquery ui中的蓝色主题版本的,由于本身网站是以蓝色作为基调的,所以用蓝 色主题的UI能与网站整体融合得非常好,可能很多人印象中都觉得datepicker是用来选日期的,以前 应用它的时候都是有一个输入框,点击输入框后才弹出这个日历面板,选择一个日期后触发回调,把 选中的日期更新回到一个特定的元素当中,日期选择控件的使命就完成了,但这里,它做的却是完全 不同的事情。它就像台历一样,只负责显示日期列表及标记一些特定日子的作用,当然,它比台历更 加复杂和先进一点,因为它是根据后台的课程开课日期设置来自动在日历中做标记的。

实现的细节:

1)怎样让datepicker默认就显示在指定的地方而不是通过输入框焦点触发? 这点其实很简单,通 过查datepicker的api就可以知道datepicker初始化的时候会自动判断调用它的元素类型是什么,如果 是input,它就会等待点击触发,如果是div,它默认就会显示出来了,所以,这里,只需要在要显示 的位置放一个div,然后用jquery的选择器找到这个元素,并且在上面调用datepicker()方法就可以了 ,示例:$('.datePickerWraper').datepicker();

2)怎样让datepicker符合设计的要求?这个其实也简单,用CSS配合一下了,我的建议是不要直接 在jquery ui的样式上面改,一来影响它自身的完整及独立性,到时或许会用到它的控件,如果直接改 会导致一些意想不到的情况发生,我认为比较好的办法是在特定的页面下用自己的样式把默认的样式 覆盖掉以使控件的尺寸符合我们的预期,即方便又灵活。

3)怎样在特定的日期加上特殊的标记?这个是课程日历的关键所在。首先,当然是需要课程开课 日期的数据了,由服务端提供的课程信息数组而来,这里就不再赘述了,研究了datepicker的api,发 现它提供了一个beforeShowDay的钩子,所有的日期在渲染之前都会通过这里的,有这个机制就好办了 ,在这个钩子里添加代码,遍历课程列表,如果当前单元格的日期与课程的开课日期是同一天,就返 回一个带有三个元素的数组变量,分别代表日期是否可选,要在日期容器里额外添加的class属性及单 元格的hover事件触发时显示的内容,相当于a的title。由于每次渲染日期时都会经过这个方法处理, 所以,只要把课程列表初始化好,在用户切换月份和年份的时候都会自动处理,不需要再在切换年月 份的时候做干预,非常简便就能达到想要的效果了。

时间: 2024-11-01 08:25:18

使用jquery ui的datepicker开发课程日历的相关文章

基于jQuery UI CSS Framework开发Widget的经验_jquery

jQuery UI中两大核心的css文件是ui.core.css和ui.theme.css.这两个css样式贯穿整个基于jQuery ui的界面上,并且可以通过jQuery ui ThemeRoller来生成自己的样式. .ui-helper-hidden :为元素应用display:none .ui-helper-hidden-accessible:将元素的绝对位置设置为不可见 .ui-helper-clearfix:适用于浮动包裹父元素的属性 . ui-helper-zfix:适用于修复if

Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】_jquery

最近的后台项目前端使用了jquery ui 日历控件自然就使用了jquery ui 的 datepicker 后台数据比较好大,一般是千万级的和百万级的关联,查询会很慢,所以后加想多加些过滤条件,其中时间要设置为必选, 产品要叫日历控件做成只能做3天之内的查询,且日历控件要做成这样的要求,如果前一个日历控制选择了2013年9月1号 后面的日历控件只能选择2013年9月1号,2013年9月2号,2013年9月3号,其他的全部要不能选,本来想叫他给提示的,领导非要这么干 真是领导一句话,码工辛苦好几

jQuery UI日期datedropper和时间timedropper选择器用法

我们经常会应用到日期和时间选择器,之前我们使用最多的是jQuery UI的datepicker(),那么今天我给大家介绍一款非常有趣的日期和时间选择器,它分为日期选择器datedropper以及时间选择器timedropper,他们俩尤其适合在移动端上应用. 有趣的日期和时间选择器 日期选择器datedropper 使用非常简单,分三步,1.引入相关js和css文件.注意datedropper和timedropper都是基于jQuery的插件,所以也要引入jQuery库文件. <script s

jquery ui datepicker-jquery UI datepicker 如何实现两个日历月份是相同的

问题描述 jquery UI datepicker 如何实现两个日历月份是相同的 **代码如下 需求如下图,当选择第一个日期之后第二个日历所显示的日期需要与第一个日期中的年月是相同的 小弟写不出来,请各位大神指教! ** <!DOCTYPE HTML> 日期选择器:jquery datepicker的使用 Document $(document).ready(function(){ $("#start").datepicker({ changeYear: true, yea

jQuery UI Datepicker使用介绍

本博客使用Markdown编辑器编写 在企业级web开发过程中,日历控件和图表控件是使用最多的2中第三方组件.jQuery UI带的Datepicker,日历控件能满足大多数场景开发需要.本文就主要讨论jQuery UI Datepicker的使用,和中文本地化配置. 1.jQuery UI介绍 jQuery UI是一套基于jQuery控件和动画效果Javascript类库.可以用来构建交互式的互联网应用程序.最新版本1.10.4.基于jQuery 1.6+jQuery UI官方网站 2.jQu

jquery UI Datepicker时间控件的使用及问题解决_jquery

本文实例为大家分享了jqueryUI中datepicker的使用,解决与asp.net中的UpdatePanel联合使用时的失效问题. 1.jqueryUI的datepicker的使用 -->首先在jqueryUI官网上根据你的需要下载适合你系统主题的样式,jqueryUI主题:下载地址: -->下载后的文件jquery-ui-1.10.3.custom文件夹:不同的主题的区别在于它们引用的css不同 默认下载的样式如下:   其它样式比如我下载的样式: 下载的jqueryUI中除了css文件

jquery UI Datepicker时间控件的使用方法(加强版)_jquery

先来看看Datepicker插件的属性表: 第一个日历插件的使用实例 首先导入需要的类库文件: <</SPAN>scripttype="text/javascript" src="${pageContext.request.contextPath }/js/jquery-1.7.1.min.js"></</SPAN>script> <</SPAN>scripttype="text/javas

jquery UI Datepicker时间控件的使用方法(终结版)_jquery

近期项目中用到日期控件,感觉不错,写出来分享给大家看看,我限制的开始时间和结束时间跨度不超过三天,并配置有清空时间,重选时间等功能,分享给大家: 先给大家看两张效果图 在例子中我控制的开始时间和结束时间为三天,也就是开始时间和结束时间的跨度不能超过三天. 具体是怎么实现的,代码中会附有很详细的解释,请大家继续往下看: 第一步,引入控件js,这里有两个,一个是jquery.js,一个是jquery-ui-datepicker.js,当然还有引入样式文件: <script type="text

Dreamweaver扩展:Web开发jQuery UI接口框架

绝大多数的Web设计师和Web开发者可能都会经常使用Adobe的产品来完成工作,本文整理了5个在Web设计开发中最常用jQuery UI 接口框架,帮助你提高项目开发效率.这些jQuery UI 框架操作非常简单,即使你是初学者. 安装这些Dreamweaver扩展前,你需要检查你的Dreamweaver和Extension Manager版本是否为当前最新版本: Dreamweaver CS4 and Extension Manager CS4. 1. jQuery UI Calendar j