Javascript startDate在FullCalendar插件中显示两次

Javascript startDate在FullCalendar插件中显示两次,javascript,jquery,Javascript,Jquery,我正在为我的一个项目使用FullCalendar插件。当用户单击日历的一个区域时,它会显示一个带有输入和约会按钮的弹出窗口。当用户单击约会按钮时,将调用makeAppointment函数,我只需将startDate回显到控制台 当用户第一次单击约会按钮时,它会记录所选的日期和时间。当用户选择“第二个日期和时间”并单击弹出窗口上的约会按钮时,它会显示两个日期和时间,即一个以前的日期和时间以及一个当前选择的日期和时间。第三次和第四次也是如此为什么会出现这种行为?我如何修复它? 这是我的密码 var

我正在为我的一个项目使用FullCalendar插件。当用户单击日历的一个区域时,它会显示一个带有输入和约会按钮的弹出窗口。当用户单击约会按钮时,将调用
makeAppointment
函数,我只需将
startDate
回显到控制台

当用户第一次单击约会按钮时,它会记录所选的日期和时间。当用户选择“第二个日期和时间”并单击弹出窗口上的约会按钮时,它会显示两个日期和时间,即一个以前的日期和时间以及一个当前选择的日期和时间。第三次和第四次也是如此为什么会出现这种行为?我如何修复它?

这是我的密码

var Calendar = {
    init: function () {
        $('#calendar').fullCalendar({
            defaultView: 'agendaWeek',
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'agendaWeek,agendaDay',
                ignoreTimezone: false
            },
            select: this.select
        });
    },

    select: function (startDate, endDate, allDay, jsEvent, view) {
        Calendar.Dialog.init(startDate, endDate);
    },

    Dialog: {
        init: function (startDate, endDate) {
            this.show();
            $('.overlay').on('click', function () { Calendar.Dialog.close() });
            $('#appointmentButton').on('click', function () { Calendar.Dialog.makeAppointment(startDate, endDate) });
        },

        //show and close functions are here

        makeAppointment: function (startDate, endDate) {
            console.log(startDate);
        }
    }
}

首先尝试检查对话框是否已初始化,否则不要再次执行此操作

    var Calendar = {
    init: function () {
        $('#calendar').fullCalendar({
            defaultView: 'agendaWeek',
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'agendaWeek,agendaDay',
                ignoreTimezone: false
            },
            select: this.select
        });
    },

    initialized: false,

    select: function (startDate, endDate, allDay, jsEvent, view) {
        if (this.initialized === false) {
            this.initialized = true;
            Calendar.Dialog.init(startDate, endDate);
        }
    },

    Dialog: {
        init: function (startDate, endDate) {
            this.show();
            $('.overlay').on('click', function () { Calendar.Dialog.close() });
            $('#appointmentButton').on('click', function () { Calendar.Dialog.makeAppointment(startDate, endDate) });
        },

        //show and close functions are here

        makeAppointment: function (startDate, endDate) {
            console.log(startDate);
        }
    }
}

现在它甚至根本不初始化pop。当我执行
console.log(this.initialized)
时,它返回
undefined
您需要显式传递上下文(apply(),call())或在实例中调用它。我仍在等待帮助。请帮我解决这个问题。