如果使用fullcalendar.js而不是fullcalendar.min.js,则FullCalendar Select不起作用

时间:2012-02-07 05:51:53

标签: javascript jquery fullcalendar

全部, 我使用的是fullcalendar下载中的示例,但是我想使用fullcalendar.js而不是fullcalendar.min.js。当我进行此更改虽然选择选项不起作用(我无法选择任何时间范围并且弹出窗口没有出现)。

在fullcalender.js文件中需要更改哪些想法才能使其正常工作?

编辑我使用以下代码进行选择:

selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
    var title = prompt('Event Title:');
    calendar.fullCalendar('unselect');
},

编辑#2 问题似乎与selectHelper有关。如果我注释掉那部分我可以选择我想要使用的时间,但它没有漂亮的叠加层。以下是来自fullcalendar.js的代码:

function renderSlotSelection(startDate, endDate) {
    var helperOption = opt('selectHelper');
    coordinateGrid.build();
    if (helperOption) {
        var col = dayDiff(startDate, t.visStart) * dis + dit;
        if (col >= 0 && col < colCnt) { // only works when times are on same day
            var rect = coordinateGrid.rect(0, col, 0, col, slotContent); // only for horizontal coords
            var top = timePosition(startDate, startDate);
            var bottom = timePosition(startDate, endDate);
            if (bottom > top) { // protect against selections that are entirely before or after visible range
                rect.top = top;
                rect.height = bottom - top;
                rect.left += 2;
                rect.width -= 5;
                if ($.isFunction(helperOption)) {
                    var helperRes = helperOption(startDate, endDate);
                    if (helperRes) {
                        rect.position = 'absolute';
                        rect.zIndex = 8;
                        selectionHelper = $(helperRes)
                            .css(rect)
                            .appendTo(slotContent);
                    }
                }else{
                    rect.isStart = true; // conside rect a "seg" now
                    rect.isEnd = true;   //
                    selectionHelper = $(slotSegHtml(
                        {
                            title: '',
                            start: startDate,
                            end: endDate,
                            className: ['fc-select-helper'],
                            editable: false
                        },
                        rect
                    ));
                    selectionHelper.css('opacity', opt('dragOpacity'));
                }
                if (selectionHelper) {
                    slotBind(selectionHelper);
                    slotContent.append(selectionHelper);
                    setOuterWidth(selectionHelper, rect.width, true); // needs to be after appended
                    setOuterHeight(selectionHelper, rect.height, true);
                }
            }
        }
    }else{
        renderSlotOverlay(startDate, endDate);
    }
}

我不确定为什么这不起作用但不是。关于改变什么的任何想法?

提前致谢!

1 个答案:

答案 0 :(得分:1)

这看起来是一个更大的问题,问题围绕着jQuery如何做事的新问题。该问题是由正则表达式的更改引起的,该正则表达式用于规范化鼠标事件属性。在Event对象中:https://github.com/jquery/jquery/blob/master/src/event.js#L7

这里有一个线程来监控这个解决方案:

http://code.google.com/p/fullcalendar/issues/detail?id=1168

然而,此修复程序在IE中不起作用。