FullCalendar截断标题问题中的文本

时间:2017-10-21 09:20:51

标签: fullcalendar truncate

我在使用Bootstrap 3的FullCalendar 3.3.1中有这个奇怪的问题,我有一个截断长标题文本的函数,它工作正常,但它会影响日历的行为,见下文:

我的代码:

// Truncate long title texts
    function truncate(str, max) {
      return str.length > max ? str.substr(0, max-1) + '…' : str;
    }
    // Get current time
    var d = new Date();
    var curtime = d.getHours()+":00:00";        
    // Calendar properties
    $('#calendar').fullCalendar({
        aspectRatio: 1.35,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay,listWeek'
        },
        scrollTime :  curtime,
        defaultView: "agendaWeek",
        editable: true,
        eventLimit: true,
        selectable: true,
        selectHelper: true,
        select: function(start, end) {
            if(start.isBefore(moment())) {
            alert('The date/time you selected is in the past!');
            } else {
                $('#ModalAdd #start').val(moment(start).format('YYYY-MM-DD HH:mm:ss'));
                $('#ModalAdd #end').val(moment(end).format('YYYY-MM-DD HH:mm:ss'));
                $('#ModalAdd').modal('show');
                // Initialize the DateRangePicker for event add modal
                $('input[name="endDate"]').daterangepicker({
                    singleDatePicker: true,
                    showDropdowns: true,
                    locale: { format: "YYYY-MM-DD" },
                    startDate: "<?php echo date('Y-m-d', strtotime('+2 days')); ?>",
                    minDate: "<?php echo date('Y-m-d', strtotime('+2 days')); ?>",
                    parentEl: "#endDate"
                });
            }
        },
        eventRender: function(event, element) {
            var cur30min = d.getTime() + (30 * 60 * 1000);
            if (usrStat == 1 && event.start > cur30min) {
                element.bind('click', function() {
                    $('#ModalEdit #id').val(event.id);
                    $('#ModalEdit #title').val(event.title);
                    $('#ModalEdit #room').val(event.room);
                    $('#ModalEdit #cat_id').val(event.cat_id);
                    $('#ModalEdit #tel').html(event.tel);
                    $('#ModalEdit #uname').html(event.uname);
                    $('#ModalEdit #eadd').html(event.eadd);                     
                    $('#ModalEdit').modal('show');
                    // Initialize the DateRangePicker for event edit modal
                    $('input[name="endDateEdit"]').daterangepicker({
                        singleDatePicker: true,
                        showDropdowns: true,
                        locale: { format: "YYYY-MM-DD" },
                        startDate: moment(event.dowend).format('YYYY-MM-DD'),
                        minDate: "<?php echo date('Y-m-d', strtotime('+2 days')); ?>",
                        parentEl: "#endDate"
                    });
                });
            }
            var title = truncate(event.title,20);
            element.find('.fc-title').html(title);
        },
        eventDrop: function(event, delta, revertFunc) { 
            edit(event);
        },
        eventResize: function(event,dayDelta,minuteDelta,revertFunc) { 
            edit(event);
        },
        events: [
        <?php 
        foreach($events as $event):             
            $start = $event['start'];
            $end = $event['end'];
            $color = "#aeaeae";
            $editable = "true"
            // Define the event information
            $event_dtls = "{";
            $event_dtls .= "id: '".$event['id']."',";
            $event_dtls .= "title: '".$event['title']."',";
            $event_dtls .= "start: '".$start."',";
            $event_dtls .= "end: '".$end."',";
            $event_dtls .= "room: '".$event['room']."',";
            $event_dtls .= "cat_id: '".$event['cat_id']."',";
            $event_dtls .= "tel: '".$event['tel']."',";
            $event_dtls .= "uname: '".$event['name']."',";
            $event_dtls .= "eadd: '".$event['eadd']."',";
            $event_dtls .= "color: '".$color."',";
            $event_dtls .= "approved: '".$event['approved']."',";
            $event_dtls .= "category: '".$event['category']."',";
            $event_dtls .= "editable: ".$editable;
            $event_dtls .= "},";
            echo $event_dtls; 
        endforeach; 
        ?>
        ]
    });

因此它在日历视图中截断长文本的工作,但是如果我添加一个事件,当我单击一个单元格时,单元格不再像这里的图像那样突出显示: cell_highlighted

添加事件仍然有效,但不再突出显示该单元格。有什么想法吗?

0 个答案:

没有答案