"对象#<对象>没有方法”;完整日历

"Object #<Object> has no method" fullcalendar

本文关键字:对象 日历 有方法 gt quot lt      更新时间:2023-09-26

我正在尝试在谷歌日历和fullCalendar之间进行完全同步日历。但现在我在调整日期对象的大小时遇到了一个问题。

eventResize: function(event,dayDelta,minuteDelta,revertFunc,start,end) {
            alert($.fullCalendar.formatDate(end, 'u'));
            // alert($.fullCalendar.formatDate(start, 'yyyy-MM-dd'));
            alert(
                "The end date of " + event.title + "has been moved " +
                dayDelta + " days and " +
                minuteDelta + " minutes."
            );
            // Demande la confirmation du redimenssionnement 
            if (!confirm("Confirmation la modification?")) {
                revertFunc();
            }
        },

所以我确信我做错了什么。。。

calendrier.js:

/* 
 * Mise en forme du calendrier et des différentes fonctions / interactions avec 
 * celui ci
 */
$(document).ready(function() {
    var date = new Date();
    var d = date.getDate();
    var m = date.getMonth();
    var y = date.getFullYear();
    $('#calendar').fullCalendar({
        // Chargement des énévements depuis le calendrier google
        events: {
            // calendrier partager en public
            url : 'https://www.google.com/calendar/feeds/riat.tom%40gmail.com/public/basic',
            editable: true       
        },
        // Entete du calendrier
        header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay'
        },
        // Vue par défaut mise en semaine
        defaultView: 'agendaWeek',
        // Permet de sélectionner les events
        selectable: true,
        // Aide à la sélection
        selectHelper: true,
        // Rend le calendrier éditable
        editable: true,
        ///////////////////////////////////////////////////////////////////////////
        // Lors d'une sélection d'une plage on propose un ajout avec entré de titre
        ///////////////////////////////////////////////////////////////////////////
        select: function(start, end) {
            // Recois un texte entré
            var title = prompt('Event Title:');
            // Création de l'évenement dans un format de date ISO8601 UTC
            if(title != '' && title != null){
                createEvent(
                        title, 
                        $.fullCalendar.formatDate(start, 'yyyy-MM-dd') + 'T' + $.fullCalendar.formatDate(start, 'HH:mm:ss.000+01:00'),    
                        $.fullCalendar.formatDate(end, 'yyyy-MM-dd') + 'T' + $.fullCalendar.formatDate(end, 'HH:mm:ss.000+01:00')
                );
            }

            // on enleve la sélection pour laisser place à l'évenement
            $('#calendar').fullCalendar('unselect');
            // On actualise le calendrier en rappelant toutes les sources
            $('#calendar').fullCalendar( 'refetchEvents' );
        },
        ///////////////////////////////////////////////////////////////////////////
        // Après un drag'n'drop d'un évenement
        ///////////////////////////////////////////////////////////////////////////
        eventDrop: function(event,dayDelta,minuteDelta,revertFunc) {
            alert(
                event.title + " was moved " +
                dayDelta + " days and " +
                minuteDelta + " minutes."
            );
            if (!confirm("Are you sure about this change?")) {
                revertFunc();
            }
        },
        ///////////////////////////////////////////////////////////////////////////
        // Après une modification de temps d'intervention
        ///////////////////////////////////////////////////////////////////////////
        eventResize: function(event,dayDelta,minuteDelta,revertFunc,start,end) {
            alert($.fullCalendar.formatDate(end, 'u'));
            // alert($.fullCalendar.formatDate(start, 'yyyy-MM-dd'));
            alert(
                "The end date of " + event.title + "has been moved " +
                dayDelta + " days and " +
                minuteDelta + " minutes."
            );
            // Demande la confirmation du redimenssionnement 
            if (!confirm("Confirmation la modification?")) {
                revertFunc();
            }
        },
        ///////////////////////////////////////////////////////////////////////////
        // ouverture d'une popup lors du clic sur l'évenement
        ///////////////////////////////////////////////////////////////////////////
        eventClick: function(calEvent) {
            ///////////////////////////////////////////////////////////////////////////
            // Suppression de l'évenement au clic
            ///////////////////////////////////////////////////////////////////////////
            /*
            deleteEvent(calEvent.title);
            // Empeche la redirection vers le calendrier google
            if (!confirm("Confirmation la modification?")) {
                revertFunc();
            }
            */
            ///////////////////////////////////////////////////////////////////////////
            // Modification de l'évenement au clic
            ///////////////////////////////////////////////////////////////////////////
            var newEvent = prompt('Entrer un nouveau nom');
            editEvent('test a', newEvent);
            return false;
        }
    });
});

index.php:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test calendrier</title>
    <link rel='stylesheet' media="" type='text/css' href='css/fullcalendar.css' />
    <script type='text/javascript' src='js/jquery.js'></script>
    <script type='text/javascript' src='js/fullcalendar.min.js'></script>  
    <script type='text/javascript' src='js/gcal.js'></script>
    <script type='text/javascript' src='js/jquery-ui.min.js'></script>
    <script type='text/javascript' src='js/account.js'></script>
    <script type='text/javascript' src='js/event.js'></script>
    <script type='text/javascript' src='js/calendrier.js'></script>
    <!-- <script src="http://www.google.com/jsapi?key=ABQIAAAAEobLGDxmyE-A9YknRQOjkBT2yXp_ZAY8_ufC3CFXhHIE1NvwkxRAbim8Zaj8QsHGwbTcqgYmr1rXlg" type="text/javascript"></script>
    Clé localhost -->
     <script src="http://www.google.com/jsapi?key=ABQIAAAAEobLGDxmyE-A9YknRQOjkBRBSQP7kN3nJ0TG1omTe6BwHiHeOBSf0Z4zFlArCAZ6g9Hu-lT6VojEeQ" type="text/javascript"></script>
    <script type="text/javascript">
        // Récupération des données utilisateurs
        google.load("gdata", "1")
    </script>
</head>
<body>
    <input type='checkbox' id='drop-remove' /> <label for='drop-remove'>remove after drop</label>
    <div class='external-event'>My Event 1</div>
    <div class='external-event'>My Event 2</div>
    <div class='external-event'>My Event 3</div>
    <div class='external-event'>My Event 4</div>
    <div class='external-event'>My Event 5</div>

    <div id="calendar" style="width:900px; margin: 0 px auto;"></div>
    <img src="images/any.jpg" style="position:absolute; top:-10000px;" />
    <input type="button" value="Affiche Event private" onclick="alert(retriveEvent())" />
    <input type="button" value="login" onclick="getMyFeed();" />
    <input type="button" value="info" onclick="alert(doCheck());" />
    <input type="button" value="logout" onclick="doLogout();" />
    <input type ="button" value="refresh" onclick="$('#calendar').fullCalendar( 'refetchEvents' );" />
    <input type="button" value="affiche date" />
    <div id="val"></div>
</body>
</html>

我错了。

答案是我用了坏物体。我尝试使用"开始"而不是"事件"

好的代码是这样的:

eventResize: function(event,dayDelta,minuteDelta,revertFunc) {
        alert(event.start);
        alert(event.end);
        /*
        alert(
            "The end date of " + event.title + "has been moved " +
            dayDelta + " days and " +
            minuteDelta + " minutes."
        );
        */
        // Demande la confirmation du redimenssionnement 
        if (!confirm("Confirmation la modification?")) {
            revertFunc();
        } else {
            alert(event.title);
            alert('event édité');
        }
    },