项目作者: ateliee

项目描述 :
jquery and html schedule calendar
高级语言: JavaScript
项目地址: git://github.com/ateliee/jquery.schedule.git
创建时间: 2014-06-15T05:53:37Z
项目社区:https://github.com/ateliee/jquery.schedule

开源协议:MIT License

下载


jq.Schedule

npm version
CI
License: MIT

jquery and html schedule calendar

  • Drag and Drop Support
  • Resize Schedule
  • Ajax Get Data

install

package

  1. npm i jq.schedule --save

Demo

Try Demo

How to use

append head css

  1. <link rel="stylesheet" type="text/css" href="./jquery.schedule/dist/css/style.min.css" />

insert body

  1. <div id="schedule"></div>
  2. <script type="text/javascript" src="./jquery.schedule/dist/js/jq.schedule.min.js"></script>
  3. <script type="text/javascript">
  4. $(function(){
  5. var $sc = $("#schedule").timeSchedule({
  6. startTime: "07:00", // schedule start time(HH:ii)
  7. endTime: "21:00", // schedule end time(HH:ii)
  8. widthTime:60 * 10, // cell timestamp example 10 minutes
  9. timeLineY:60, // height(px)
  10. verticalScrollbar:20, // scrollbar (px)
  11. timeLineBorder:2, // border(top and bottom)
  12. bundleMoveWidth:6, // width to move all schedules to the right of the clicked time line cell
  13. rows : {
  14. '0' : {
  15. title : 'Title Area',
  16. subtitle : 'Description',
  17. schedule:[
  18. {
  19. start:'09:00',
  20. end:'12:00',
  21. text:'Text Area',
  22. data:{
  23. }
  24. },
  25. {
  26. start:'11:00',
  27. end:'14:00',
  28. text:'Text Area',
  29. data:{
  30. }
  31. }
  32. ]
  33. },
  34. '1' : {
  35. title : 'Title Area',
  36. schedule:[
  37. {
  38. start:'16:00',
  39. end:'17:00',
  40. text:'Text Area',
  41. data:{
  42. }
  43. }
  44. ]
  45. }
  46. },
  47. onChange: function(node, data){
  48. addLog('onChange', data);
  49. },
  50. onInitRow: function(node, data){
  51. addLog('onInitRow', data);
  52. },
  53. onClick: function(node, data){
  54. addLog('onClick', data);
  55. },
  56. onAppendRow: function(node, data){
  57. addLog('onAppendRow', data);
  58. },
  59. onAppendSchedule: function(node, data){
  60. addLog('onAppendSchedule', data);
  61. },
  62. onScheduleClick: function(node, time, timeline){
  63. addLog('onScheduleClick', time + ' ' + timeline);
  64. }
  65. });
  66. });
  67. </script>

Options

Paramaters

Key Value Description
className jq-schedule add elemnt class(default jq.schedule)
startTime 07:00 schedule start time(HH:ii)
endTime 21:00 schedule end time(HH:ii)
widthTime 600 cell timestamp example 10 minutes
timeLineY 60 height(px)
verticalScrollbar 20 scrollbar (px)
timeLineBorder 2 border(top and bottom)
bundleMoveWidth 6 width to move all schedules to the right of the clicked time line cell
rows {object} schedule data
draggable {boolean} enable draggable(default true)
resizable {boolean} enable resizable(default true)
resizableLeft {boolean} enable left handle resizable(default false)

Schedule Data

Key Type Description
title string Schedule Row Title
subtitle string Schedule Row Description
schedule object[] schedule row of array

Schedule Data in Object

Key Type Description
start string HH:ii
end string HH:ii
text string Bar Title
data object bind data

Callback Methods

onChange(node: Element, data: Object)

on change schedule bar callback

onInitRow(node: Element, data: Object)

initialize data

onClick(node: Element, data: Object)

on click bar callback

onAppendRow(node: Element, data: Object)

on add schedule row callback

onSppendSchedule(node: Element, data: Object)

on add schedule bar callback

onScheduleClick(node: Element, time: string, data: Object)

on click schedule row callback

Methods

get row data

  1. var data = $("#schedule").timeSchedule('timelineData');

get schedule data

  1. var data = $("#schedule").timeSchedule('scheduleData');

clear all data

  1. $("#schedule").timeSchedule('resetData');

clear all data and row

  1. $("#schedule").timeSchedule('resetRowData');

add row

  1. $("#schedule").timeSchedule('addRow', timeline, {
  2. title : 'Title Area',
  3. schedule:[
  4. {
  5. start:'09:00',
  6. end:'12:00',
  7. text:'Text Area',
  8. data:{
  9. }
  10. }
  11. ]
  12. });

add data

  1. $("#schedule").timeSchedule('addSchedule', timeline, {
  2. start: start,
  3. end: end,
  4. text:'Insert Schedule',
  5. data:{}
  6. });

switch setting

  1. $("#schedule").timeSchedule('setDraggable', true or false);
  1. $("#schedule").timeSchedule('setResizable', true or false);

For Development

run server browser-sync

  1. npm run serve