簡體   English   中英

如何在fullcalendar中添加事件?

[英]How to add event in fullcalendar?

我不是 PHP 狂,但我能理解。

我想使用 fullcalendar( 這個例子

我已經閱讀了完整的文檔。 我已經通過標記 fullcalendar 閱讀了完整的 43 頁,但找不到我的答案。

很簡單,拖入日期時如何添加事件?

腳本從 JSON 文件中讀取,但如何寫入 JSON?

fullcalendar 中的 JS 文件:

$(function()
{
    /* initialize the external events
    -----------------------------------------------------------------*/
    $('#external-events ul li').each(function() 
    {
        // create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
        // it doesn't need to have a start or end
        var eventObject = {
            title: $.trim($(this).text()) // use the element's text as the event title
        };
        
        // store the Event Object in the DOM element so we can get to it later
        $(this).data('eventObject', eventObject);
        
        // make the event draggable using jQuery UI
        $(this).draggable(
        {
            zIndex: 999,
            revert: true,      // will cause the event to go back to its
            revertDuration: 0,  //  original position after the drag,
            start: function() { if (typeof mainYScroller != 'undefined') mainYScroller.disable(); },
            stop: function() { if (typeof mainYScroller != 'undefined') mainYScroller.enable(); }
        });
        
    });

    /* initialize the calendar
    -----------------------------------------------------------------*/
    
    $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: true,
        droppable: true,
        events: rootPath + "/admin/ajax/calendarEvents.json",
        drop: function(date, allDay) 
        {
            // 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;
            
            // 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();
            }
            
        }
    });
});

這是 html

    <div class="widget widget-inverse">
    
        <!-- Widget heading -->
        <div class="widget-head">
            <h3 class="heading">Draggable Events</h3>
        </div>
        <!-- // Widget heading END -->
        
        <div class="widget-body">
        
            <!-- Events list -->
            <ul class="unstyled">
                <li class="glyphicons move"><i></i> My Event 1</li>
                <li class="glyphicons move"><i></i> My Event 2</li>
                <li class="glyphicons move"><i></i> My Event 3</li>
                <li class="glyphicons move"><i></i> My Event 4</li>
                <li class="glyphicons move"><i></i> My Event 5</li>
            </ul>
            <!-- Events list END -->
            
            <label for="drop-remove" class="checkbox">
                <input type="checkbox" class="checkbox" id="drop-remove" /> 
                remove after drop
            </label>

        </div>
    </div>

非常感謝

看這個頁面: draggable events

查源碼,你會看到drop函數

$('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        editable: true,
        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;

            // 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();
            }

        }
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM