背景

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

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. 【Linux】-NO.160.Linux.1 -【升级Centos7】

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

  2. Java 数据库程序设计

    数据库基础 目前,大多数数据库系统都是关系数据库系统(relational database system).该数据库系统是基于关系数据模型的,这个模型有三个要素:结构.完整性和语言 结构(struc ...

  3. 接口测试工具-fiddler

    1.fiddler拦截修改数据 命令介绍: bpu在请求开始时中断,bpafter在响应到达时中断,bps在特定http状态码时中断,bpv/bpm在特定请求method时中断. 提示:命令输入区域输 ...

  4. virtual dom 简单了解

    管理应用程序状态和用户界面的同步一直是前端UI开发复杂性的主要来源.目前出现了不同的方式来处理这个问题.本文简单讨论其中一种方式virtual dom. 文章概要: virtual dom 基本概念, ...

  5. wpf C# 解决代码 引用 资源 图片 问题

    目录结构   资源属性设置   使用   string BASE_PATH = AppDomain.CurrentDomain.BaseDirectory;                       ...

  6. warnings.warn("allowed_domains accepts only domains, not URLs. Ignoring URL entry %s in allowed_doma

    多页面循环爬取数据抛出如下异常 warnings.warn("allowed_domains accepts only domains, not URLs. Ignoring URL ent ...

  7. python运算符和数据类型的可变性

    一.运算符 计算机可以进行的运算有很多种,不只是加减乘除,它和我们人脑一样,也可以做很多运算. 种类:算术运算,比较运算,逻辑运算,赋值运算,成员运算,身份运算,位运算,今天我们先了解前四个. 算术运 ...

  8. 消息中间件之一:RabbitMQ

    RabbitMQ 是一个实现了AMQP(高级消息队列协议)的消息队列,最初起源于金融系统,主要用来实现应用程序间的异步和解耦,可用于在分布式系统中做消息的存储转发 相比于传统的队列服务概念(消息发送者 ...

  9. 【JavaScript】常用的数据类型的处理方式

    写这篇文章的目的,是在学习过程中反复查找如何对这三种数据类型进行转换的方法,所以干脆总结在一起. 一.字符串 0.includes:string.includes(),查找当前string中是否包含某 ...

  10. vue配置手机通过IP访问,Win10让局域网内其他电脑通过IP访问网站的方法

    vue配置手机通过IP访问config/index.js// Various Dev Server settings host: '0.0.0.0', // can be overwritten by ...