背景

本次需求:实现在一个以月为界面的日历上展示每天发生的事件。

1、每天的事件有多个类型,不同类型的事件使用不同背景色标注,展示为某个类型事件的统计,比如: 会议(6)

2、点击某一天可以查询改天所有类型事件列表。

3、点击某类型事件可以查询当天该类型事件列表。

4、点击周选项可以查询当前周所有事件。这一点只是和第2点在取日期范围有所不同。

分析

经过以上需求明确接下来需要用到的知识点:

* JQuery FullCalendar v3.10.0

* day 点击事件

* event 事件的点击事件

* week 周点击事件

* 不同类型的事件数据来源不同,需要使用多数据源

查了一下别人翻译的中文版API : https://www.helloweba.net/javascript/445.html,找到以上知识点,基本上就可以累代码了。

实现

a、引用 FullCalendar插件的JS到项目里。

b、在页面添加引用插件的代码。

<div id="calendar" style="width: 1000px; padding: 10px"></div>

c、在页面的JS里面进行calendar插件初始化

$('#calendar').fullCalendar({header:{left: 'prev day',center: 'title',right: 'next'},isRTL : false,    showNonCurrentDates: false,                 // 默认为true,显示月视图非本月日期eventLimit: 3,   //每日事件展示上限eventLimitText: '更多>>',                    //多余事件描述buttonIcons: false,  //控制界面图标,false的时候,上月、下月才会显示为中文否则为图标height: window.innerHeight-30,  //控制高度windowResize: function (view) {  //控制界面随窗口拖动自适应$('#calendar').fullCalendar('option','height',window.innerHeight-30);},weekNumbers:true,  //周显示开关navLinks: true,  //日点击开关navLinkDayClick: function ( date, jsEvent) {
  // 这里进行日点击事件处理,Ajax请求,date格式化后为当日},navLinkWeekClick: function ( weekStart, jsEvent ) {
       // 这里进行周点击事件处理,Ajax请求,weekStart格式化后为当周的开始日即周一,想要周日自己加6天就好了},
  // 多数据源节点,这个节点文档没有解释的很清晰,稍微理解一会才搞清楚结构eventSources: [{  events: function (start, end, timezone, callback) {  // 某一种类型事件,这里通过ajax请求获取后台数据将数据放到对应的事件里面
         let events = []; // 定义一个数组准备接收事件

angular.forEach(data.resultList,function (item) {    // 循环从后台接收的数据

// 将数据push到数组里面
              events.push({
                  title : '会议(' + item.count + ')',
                  start : item.endDate,
                  stage : '03'
              });
          });

// 进行事件回调,这样事件就会生成在日程表上了
          callback(events);

 },color: '#6CA0E0' // 该类型数据的事件背景色},{events: function (start, end, timezone, callback) {// 某一种类型事件,这里通过ajax请求获取后台数据将数据放到对应的事件里面
  // 处理同上,这里可以无限添加数据源},color: '#C4D79B'} ], eventClick: function(calEvent, jsEvent, view) {  // 事件点击
 // calEvent可以获取被点击事件里面的属性,比如:calEvent.stage(上面标黄属性)就能取到当前事件的属性值。
 $(this).css('border-color', 'red'); //点击后改变被点击事件边框颜色 }, eventTextColor:'#000000' // 事件文字颜色 });

d、最后还有个问题就是重载日程表上面事件,当你改变了查询结果又希望异步刷新页面事件时,需要先去掉所有的事件再更新事件才行。

$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('refetchEvents');

这两行代码你值得拥有!以上基本上就完全解决了所有问题啦,如果有问题可以留言。

全国人民举国欢庆 。。。

转载于:https://www.cnblogs.com/laramia/p/10731072.html

JQuery-FullCalendar 多数据源实现日程展示相关推荐

  1. HTML按钮控制数据源 + echarts图表展示

    HTML按钮控制数据源 + echarts图表展示 时过匆匆,转眼见2018就剩下仅有的5天了,开心吗???2018的自己经历的许多许多,收获失败.痛苦快乐.酸甜苦辣都有.即将过去的12月特别的忙碌, ...

  2. jquery练习——简单的图片结果展示效果

    今天看到google图片搜索结果页面,感觉简洁实用,于是用jquery粗略的模仿了一下 再次感觉到jquery的强大和易用,基本思路初步实现了,再整合ajax和json,应该可以做一个简单的应用了 : ...

  3. 基于FullCalendar插件的个人日程安排系统(4)

    这一篇开始要用到FullCalendar插件,由于我自己也是头一次用,也不是很了解,所以只能简单介绍一下,大家可以一起讨论. 效果图 customer_index.jsp <%@ page la ...

  4. 利用FullCalendar做简单的日程管理,以及后台动态更新数据出现的问题。

    第一:总体效果. 1.初始化日历: 2.点击某一天可以添加日程: 3.点击已添加的日程可以进行修改.删除.分享: 4.点击分享,可以选择系统内的人员进行日程的分享: 5.如果是上级,可以通过日历左上角 ...

  5. ajax php计数,jQuery+PHP+Ajax动态数字统计展示实例

    jQuery+PHP+Ajax实现的一款动态数字统计展示实例,本例是在页面上动态展示了当前在线用户数,当然了,你可以应用到其他更多场景中. 首先我们在#number放置要统计的数字: 当前在线: - ...

  6. jQuery插件推荐(一) ——图像切换展示

    jQuery之所以强大,是因为有无数优秀的技术人员为其没费开发插件.令这个轻巧优秀的Javascript库更加优秀. 1.jquery.soChange.js 首先推荐的是由一名中国的前端–不羁虫开发 ...

  7. JQuery实现的Table表头固定展示效果

    在线演示1 在线演示2 在线演示3 本地下载 大家可能经常需要展示数据或者报表,表头如果滚动上去后,查看数据的类别和字段是个麻烦事情,在这里我们推荐来自tympanus的一个JS实现的 table表头 ...

  8. 【三石jQuery视频教程】01.图片循环展示_重发

    大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的HTML.CSS和jQuery来实现一个超级简单的图片循环展示效果,先来看下最终的产品: Step1 ...

  9. 【三石jQuery视频教程】01.图片循环展示_再次重发

    之前的文章,由于在博文的底部放有微信公众号的缘故,被管理员判定为: 您好,您的这篇博文内容本身没什么问题,但是,在博文底部存在推广信息内容.... 你们也没告知到底是哪条触犯了博客园的规矩,我就把底部 ...

最新文章

  1. SAP携欧洲众巨头建立“工业4.0开放联盟”
  2. java 什么时候进行垃圾回收_Java中垃圾回收有什么目的?什么时候进行垃圾回收?...
  3. excel函数SUMPRODUCT
  4. \\ n和\\ r之间的区别?
  5. java date oracle_java对象属性为date oracle数据库字段为Timestamp 处理方式
  6. powershell电脑加域退域
  7. [Java基础]接口基础
  8. codeforces 962E Byteland, Berland and Disputed Cities 最小生成树变形
  9. android开发适配深色模式,手机不支持深色模式,如何用软件解决深色模式的问题?(附有系统全局深色模式实现方法...
  10. Java 单例模式:懒加载(延迟加载)和即时加载
  11. 解决 min-width 在 IE6 中无效的方法
  12. java学习资料总结
  13. Nexus3 私服搭建和配置
  14. 粒子群算法(PSO)光伏发电 MPPT实现多峰值寻优,阴影遮蔽光伏发电算法 使用s函数编写粒子群算法,阴影遮蔽,实现多峰值寻优
  15. 怎么把ide改成ahci_怎么改硬盘模式IDE,AHCI
  16. 用计算机查看终身伴侣,爱情是男女之间基于共同的生活理想,在各自内心形成的相互倾慕,并渴望对方成为自己终身伴侣的一种强烈、纯真、专一的感情。...
  17. IDEA Unable to import maven project: See logs for details (maven的坑)
  18. js分享到第三方平台
  19. 易语言服务器端口总被占用,易语言检测端口是否被占用的代码
  20. 网页游戏mysql修改_大天使之剑奇迹网页游戏 一键服务端+架设教程+修改方法

热门文章

  1. 第一阶段个人总结03
  2. sloth——算法工程师标注数据的福音
  3. LeetCode算法题10:DFS/BFS-扫雷游戏
  4. ctime库函数的使用
  5. springboot源码分析 - AbstractRoutingDataSource多数据源方案的分析
  6. git merge git pull时候遇到冲突解决办法git stash
  7. 聊聊WebClient的LoadBalance支持
  8. spring-boot(二)
  9. Why Did the Cow Cross the Road III(树状数组)
  10. JavaScript ES6箭头函数指南