背景

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

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. PySe-008-开启浏览器的手机模式

    以 Chrome 为例,通过设置 chromeoption 的参数即可实现启动浏览器后,开启手机模式.相应设置的源代码如下所示: chromeOptions = webdriver.ChromeOpt ...

  2. Spark入门到精通--(第十节)环境搭建(ZooKeeper和kafka搭建)

    上一节搭建完了Hive,这一节我们来搭建ZooKeeper,主要是后面的kafka需要运行在上面. ZooKeeper下载和安装 下载ZooKeeper 3.4.5软件包,可以在百度网盘进行下载.链接 ...

  3. 第 1 章 JS变量、作用域

    目录 一. 判断变量类型 二.作用域 和 上下文 1. 作用链 2. 上下文(this) 二.JS的解析机制 1. 预解析 三.垃圾收集 内存管理销毁 @(es5) 基本类型 引用类型 一. 判断变量 ...

  4. SharePoint 2010 查看dll的PublicKeyToken值方法

    在做asp.net开发过程中,偶尔对有些dll,进行强制签名,那么在注册dll到gac的时候,就需要知道dll的PublicKeyToken值,如何通过简单的方法,来获得这个值呢,下面是一个很好又实用 ...

  5. urlib库的使用

    urlib库实际上不是很常用,因为其api调用复杂,已被requests模块取代. 1.request发送请求 from urllib import request #默认指定的是get请求 #url ...

  6. 再一波Python实战项目列表

    前言: 近几年Python可谓是大热啊,很多人都纷纷投入Python的学习中,以前我们实验楼总结过多篇Python实战项目列表,不但有用还有趣,最主要的是咱们实验楼不但有详细的开发教程,更有在线开发环 ...

  7. Podfile语法参考

    中文翻译可以参考:Podfile语法参考(译) 英文官方文档:Podfile Syntax Reference

  8. .NET Core 事件总线,分布式事务解决方案:CAP 基于Kafka

    背景 相信前面几篇关于微服务的文章也介绍了那么多了,在构建微服务的过程中确实需要这么一个东西,即便不是在构建微服务,那么在构建分布式应用的过程中也会遇到分布式事务的问题,那么 CAP 就是在这样的背景 ...

  9. PHP----------php的opcache扩展配置参数介绍

    [opcache]zend_extension = "路径/ext/php_opcache.dll" ; Zend Optimizer + 的开关, 关闭时代码不再优化.opcac ...

  10. Spring Cloud Gateway Ribbon 自定义负载均衡

    在微服务开发中,使用Spring Cloud Gateway做为服务的网关,网关后面启动N个业务服务.但是有这样一个需求,同一个用户的操作,有时候需要保证顺序性,如果使用默认负载均衡策略,同一个用户的 ...