jqueryUI draggable和droppable 关于fullCalendar

最近要写一个日历??来管理一天的事务。用工作室买来的Metronic模版,找到我想要的日历模版。

讲讲fullcalendar吧: 我花了两天时间看源码fullcalendar.js。在里面发现了许多jquery-ui里的东西,我摸清了自己很多js已经不用写太多了,大部分写的是ajax请求,将静态代码动态化的过程。但是两天的时间都在摸索,没有任何代码写入真的让人忧伤,然后发现了有官方手册http://fullcalendar.io/docs/。

全英文的手册对于我这种英语小白来说,好头痛,硬着脑子,一个一个翻译了起来,慢慢地大致能看懂意思了。

$(‘#calendar‘).fullCalendar({    header: //Defines the buttons and title at the top of the calendar.    defaultView: //The initial view when the calendar loads.    editable://Determines whether the events on the calendar can be modified.    droppable: true, // this allows things to be dropped onto the calendar !!!    drop: function(date, allDay) { // this function is called when something is dropped

        // retrieve the dropped element‘s stored Event Object        var originalEventObject = $(this).data(‘eventObject‘);        // we need to copy it, so that multiple events don‘t have a reference to the same object        var copiedEventObject = $.extend({}, originalEventObject);

        // assign it the date that was reported        copiedEventObject.start = date;        copiedEventObject.allDay = allDay;        copiedEventObject.className = $(this).attr("data-class");        $.post($.U(‘Calendar/ajax?q=AddEvent‘),{‘addEvent‘:copiedEventObject},function(data){                console.log(copiedEventObject);        });

        // render the event on the calendar        // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)        $(‘#calendar‘).fullCalendar(‘renderEvent‘, copiedEventObject, true);        // is the "remove after drop" checkbox checked?        if ($(‘#drop-remove‘).is(‘:checked‘)) {            // if so, remove the element from the "Draggable Events" list            $(this).remove();        };

    },
events: function(start, end,callback){事件显示:可以是array,json和function。    $.ajax({        url: $.U(‘Calendar/ajax?q=AllEvent‘),        dataType:‘json‘,        success: function(data) {            var events = [];            $(data.event).each(function(e,a) {                events.push({                    id: a.id,                    title: a.title,                    start: a.start,                    backgroundColor: a.backgroundcolor,                    end:a.end,                    allDay: !!(a.allday),                    className: a.deleteclass                });

            });            callback(events);//递归调用events才能把所有事件显示出来。

        }    });},
    eventClick: function(calEvent) {事件点击进行注销,将事件中划一条线。        var the=$(this);        if(the.hasClass(‘fc-event-delete‘)) {//fc-event-delete这个样式是自己添加的,里面就是text-decoration: line-through;
            $.ajax({                url: $.U(‘Calendar/ajax?q=RemoveClass‘),                data:{id:calEvent._id},                dataType:‘json‘,                success: function(item) {                    the.removeClass(‘fc-event-delete‘)                }            });        }        else{            $.ajax({                url: $.U(‘Calendar/ajax?q=AddClass‘),                data:{id:calEvent._id},                dataType:‘json‘,                success: function(item) {                   the.addClass(‘fc-event-delete‘)                }            });        }    },    eventDrop:function( event){事件在日历移动时间会改动的代码        if(event.allDay) {            $.ajax({                url: $.U(‘Calendar/ajax?q=RemoveTime‘),                data: {                    start: event.start,                    id: event._id,                    end: event.end                },                dataType: ‘json‘,                success: function (item) {                }            })        }        else{            $.ajax({                url: $.U(‘Calendar/ajax?q=RemoveDayTime‘),                data: {                    allDay: event.allDay,                    start: event.start,                    end: event.end,                    id: event.id                },                dataType: ‘json‘,                success: function (item) {                }            })        }    },    eventDragStop:function( event, jsEvent,ui,view){//删除事件,垃圾筒的功能  $(‘#event_delete‘).droppable({//当我的事件放在event_delete上面时进行删除和移除。        drop:function(){            var the=$(‘#calendar‘);
           $.ajax({               url: $.U(‘Calendar/ajax?q=deleteEvent‘),               data:{                 id:event.id            },            dataType:‘json‘,            success: function(item){                 the.fullCalendar( ‘removeEvents‘,event.id );//‘removeEvents‘移除事件,fullcalendar里的。
            }        })}});
    },    eventResize:function( event){//延长事件的时间。事件调整大小。        $.ajax({            url: $.U(‘Calendar/ajax?q=ResizeTime‘),            data:{                time:event.end,                id:event._id            },            dataType:‘json‘,            success: function(item){            }        })    }});

下面是自己百度而来的个人觉得比较的帮助:

官网:http://jqueryui.com

比较好的学习jqueryUI的手册:http://www.runoob.com/jqueryui/jqueryui-tutorial.html

还有别人的学习笔记:http://blog.csdn.net/dunyanan1/article/details/7404467

http://www.cnblogs.com/rabbit2012/archive/2013/02/22/2922007.html

时间: 2024-10-01 10:16:44

jqueryUI draggable和droppable 关于fullCalendar的相关文章

jQueryUI Draggable 和 Droppable 配合使用时遇到的两个坑

jQueryUI 的 拖拽插件极大的方便了开发者对拖拽功能的实现,但是官方教程给的太笼统,在具体实现的时候很多地方不明确,这里说一下我遇到的两个 "小坑": 1:Draggable 的clone  属性. 2:Droppable 接受拖拽控件的定位问题(拖到哪,就放在哪) 首先是第一个"坑",在做一些类似编辑器的东西时需要我们实现类似拖拽控件的功能,即从 "工具栏" 拖到 "编辑栏".这就需要用到 clone属性,在使用这个属

FullCalendar 官方文档翻译

官方文档地址:http://fullcalendar.io/docs/ 下载地址:http://fullcalendar.io/download/ 1. 使用方式, 引入相关js, css后, $(‘#div_name’).fullCalendar({//options});  接受的是一个option对象 2. 普通属性 2.1. year, month, date: 整数, 初始化加载时的日期. 2.2. defaultView: 字符串类型, 默认是’month; 2.2.1. 允许的vi

jQuery UI API - 可拖拽小部件(Draggable Widget)(转)

所属类别 交互(Interactions) 用法 描述:允许使用鼠标移动元素. 版本新增:1.0 依赖: UI 核心(UI Core) 部件库(Widget Factory) 鼠标交互(Mouse Interaction) 注释:让被选元素可被鼠标拖拽.如果您不只是拖拽,而是拖拽 & 放置,请查看 jQuery UI 可放置(Droppable)插件,为可拖拽元素提供了一个放置目标. 快速导航 选项 方法 事件 addClasses appendTo axis cancel connectToS

EasyUI基础入门之Droppable(可投掷)

怎么说呢Droppable这个单词究竟是什么意思,准确来说easyui作者究竟要表达什么意思.还是不大好拿捏的.只是没关系,没有必要纠结与这些细枝末节的东西,依据官网的demo效果,就简单的将之定义为(可投掷)吧! Droppable droppable和draggable有类似的地方,只是差别点在于前者着重于将元素放进某个容器中,而后者则着重于可拖拽(尽管可能一些效果两者都能够实现).并且通过查看easyloader源代码可知道,droppable并不依赖于draggable. Droppab

一款html拼图游戏详解

本文是爱编程原创翻译,转载请看清文末的转载要求,谢谢合作! 游戏介绍 这篇文章是献给web游戏开发者用简单的开发工具开发一款游戏.此文介绍了用html.css.javascript只需简单和几个步骤开发一款2d游戏.在这里,我要呈现给大家如何创建一款拼图游戏,在这个游戏中你可以拖动小图块来拼成完整的大图. 点击这里查看游戏效果. 游戏规则 游戏规则非常简单,你只要拖动被切碎的图片块来组成完整的大图.需要用正确的方法才能最终拼成完整的图片.在游戏中拖动小图片的次数将被统计下来.所以.应该尽量用最少

jQuery 学习笔记_01

jQuery是一个简洁快速灵活的JavaScript框架,能让你在网页上简单的操作文档.处理事件.实现特效并为Web页面添加Ajax交互. 1 jQuery大多是基于 document 一个或多个元素进行操作的,选择元素就是基础. 1.1 通过tagName匹配.$("p")就是选出所有的document中P标签的元素1.2 通过ID匹配.$("#list1")就是选出所有的document中 id="list1"的元素1.3 通过.classN

jq UI型插件

1.拖曳插件--draggable http://www.runoob.com/jqueryui/example-draggable.html $(function () { $('#x').draggable({ axis:"x" }) $("#y").draggable({ axis:"y" }) }); 2.放置插件--droppable var intSum=0; $(function () { $(".drag").

JS组件系列——JsPlumb连线及相关效果详解

前言:之前项目里面用到了Web里面的拖拽流程图的技术JsPlumb,其实真不算难,不过项目里面用HTML做的一些类似flash的效果,感觉还不错,在此分享下. Jsplumb官网:https://jsplumbtoolkit.com GitHub:https://github.com/sporritt/jsplumb/ 一.效果图展示 1.从左边拖动元素到中间区域,然后连线 2.连线类型可以自定义:这里定义为直线.折线.曲线.实际项目中根据业务我们定义为分装线.分装支线.总装线等 3.鼠标拖动区

JQuery UI的拖拽功能

JQuery UI是JQuery官方支持的WebUI 代码库,包含底层交互.动画.特效等API,并且封装了一些Web小部件(Widget).同时,JQuery UI继承了jquery的插件支持,有大量的第三方插件可以丰富JQuery UI的功能. JQuery UI提供的API极大简化了拖拽功能的开发.只需要分别在拖拽源(source)和目标(target)上调用draggable和droppable两个函数即可. 拖拽原理 首先要明确几个概念. ource:拖拽源,要拖动的元素. taerge