背景

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

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');

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

全国人民举国欢庆 。。。

JQuery-FullCalendar 多数据源实现日程展示的更多相关文章

  1. C# Web Forms - Using jQuery FullCalendar

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> ...

  2. JQuery FullCalendar(二)

    前言:根据前文介绍,我们对JQuery FullCalendar如何从后台取数据有了初步了解,已经实现最基本的要求.下面介绍一下FullCalendar的事件 $('#calendar').fullC ...

  3. 如何设置Jquery UI Menu 菜单为横向展示

    Jquery UI Menu 默认是纵向展示的.Jquey UI  Menu 设置API,http://api.jqueryui.com/menu/#option-position 修改对应的CSS可 ...

  4. [JQuery]用InsertAfter实现图片走马灯展示效果2——js代码重构

    写在前面 前面写过一篇文章<[JQuery]用InsertAfter实现图片走马灯展示效果>,自从写过那样的也算是使用面向对象的写法吧,代码实在丑陋,自从写过那样的代码,就是自己的一块心病 ...

  5. 3-5 编程练习:jQuery实现简单的图片对应展示效果

    3-5 编程练习:jQuery实现简单的图片对应展示效果 通过这个章节的学习, 老师带领大家完成了一个基本的图片切换特效,接下来,我们也实现一个类似的效果,点击相应的按钮,切换对应的图片. 效果图 : ...

  6. jquery.fullCalendar官方文档翻译(一款小巧好用的日程管理日历, 可集成Google Calendar)

    1. 使用方式, 引入相关js, css后, $(‘#div_name’).fullCalendar({//options});  接受的是一个option对象 2. 普通属性 2.1. year, ...

  7. 【三石jQuery视频教程】01.图片循环展示

    视频地址:http://v.qq.com/page/e/5/t/e0149n5he5t.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...

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

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

  9. PHP+Mysql+jQuery实现地图区域数据统计-展示数据

    我们要在地图上有限的区块内展示更多的信息,更好的办法是通过地图交互来实现.本文将给大家讲解通过鼠标滑动到地图指定省份区域,在弹出的提示框中显示对应省份的数据信息.适用于数据统计和地图区块展示等场景. ...

随机推荐

  1. for里面是采用setInterval遍历二维数组,for循环到最后一个数的时候,才执行setInterval的问题解决

    点击播放看效果 <!doctype html> <html lang="en"> <head> <meta charset="U ...

  2. 【EBook】-NO.161.微服务.1 -【微服务架构与实践】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  3. 客户端不能连接MySQL - 2003-Can't connect to MySQL server on '192.168.43.180'(10060 "Unknown error")

    客户端不能连接MySQL 场景: 数据库(此处以MySQL为例)安装在虚拟机里面,在宿主机上进行连接数据库的时候始终不能连接,但在虚拟机中使用正常. 针对上面的场景: 1. 在虚拟机里面可以正常使用M ...

  4. php中双$符 及一些基础知识

    双$$符号表示可变变量 如 $a = "b", $b = 'c'; echo $$a    此时 $$a=>$($a) =>$b 输出的值就应该为c; 变量传应用值$b ...

  5. bfs经典

    题意:地图上分别用‘.’表示硬地,‘#’表示禁地,‘E’表示易碎地面.你的任务操作一个1*1*2的长方体.长方体有两种状态分别为:立在地面上,躺在地面上.把长方体从入口移动到出口,求需要的最小步数. ...

  6. django--如何将数据结果集序列化传给前端页面展示

    示例为一对多的表关系,学生为多,老师为一,设置外键字段可以为空,也就是说关联的老师被删除该学生依然存在,只是相应字段留空 class Teacher(models.Model): name = mod ...

  7. java-redis

    pom.xml添加如下配置: <dependency> <groupId>org.springframework.boot</groupId> <artifa ...

  8. ubuntu16.04SSH无法连接

    提示错误:server responded "algorithm negotiation failed” 解决办法: 修改ssh的配置文件 /etc/ssh/sshd_config文件 在末 ...

  9. [批处理]守护NodeJS进程

    背景: 日常进行CI过程中,使用NodeJs方式:GIT更新->检测是否需要编译->调用IncrediBuilder编译->读取编译日志判断是否通过->调用7z打包 问题: 持 ...

  10. VDSR

    提出SRCNN问题 context未充分利用 Convergence 慢 Scale Factor 训练指定fator的模型再重新训练其他fator的模型低效 context 对于更大的scale-f ...