Fullcalendar插件悬停时出现Javascript错误

时间:2015-09-17 03:15:32

标签: javascript jquery fullcalendar

我对JavaScript没有足够的了解,这就是我提出这个问题的原因。在我的网站的员工名单仪表板上,我在某些日期徘徊时遇到了一些javascript错误,例如9月8日,9日和7日。 onhover它显示一个带有'null'错误消息的框。可以删除吗?

我使用'完整日历'插件来显示此日期。

这是我的仪表板。 http://www.zaika.com.au/sarkar/ab7/index.php/dashboard

1 个答案:

答案 0 :(得分:1)

我确定正在调用的服务器上有一个悬停事件,但黑客解决方案是给这个css,它基本上“摆脱它”,但是需要更长的时间来追踪全日历的启动,我想说这是你向你的服务器调用ajax来请求关于这些事件的信息的情况,但目前还不是很清楚:

.tooltipevent{
    display: none !important;
    visibility: hidden !important;
    opacity: 0;
}

好的,我通读了该文件并找到了令人讨厌的js ....

$('#calendar').fullCalendar({ //re-initialize the calendar
            disableDragging: true,
            //header: h,
            header: {
                left: '<input type="text" value="subhash">',
                center: 'title',
                right: 'prev,next'
            },
            /* viewRender: function(view, element) {
                $('#calendar').fullCalendar( 'gotoDate', 2014, 4, 24 );
             }, */
            editable: true,
            selectable: true,
            selectHelper: true,
            dayRender: function(date, cell){  
                if (date < futureBlockDate){ 
                    $(cell).addClass('fc-cell-overlay');
                }
                //$(cell).addClass('fc-cell-overlay')
            },
            dayClick: function(date, allDay, jsEvent, view) {

                var SelectedDate=(date.getFullYear() + '-'+number_change(date.getMonth() + 1) + '-' + number_change(date.getDate()));
                $('#start_date').val(SelectedDate); 
                $( ".datepicker" ).datepicker( "option", "minDate", date);
                if(!$(this).hasClass('fc-cell-overlay')){ 
                $('#deleteEvent').hide();
                $('#title_popup').html('Create');
                $('#editId').val();
                $('#stack1_click').trigger('click');} 
            }, 
            eventClick:  function(event, jsEvent, view) { 

                var unid=event.id;  
                var type=event.type;    
                if(type=="leave"){  
                    var reason = event.reason;
                    var startDate = new Date(event.start);
                    var endDate = new Date(event.end); 
                    var Start=(startDate.getFullYear() + '-'+number_change(startDate.getMonth() + 1) + '-' + number_change(startDate.getDate()));
                    var End=(endDate.getFullYear() + '-'+number_change(endDate.getMonth() + 1) + '-' + number_change(endDate.getDate())); 

                    $('#editId').val(unid);
                    $('#reason').html(reason);
                    $('#start_date').val(Start);
                    $('#end_date').val(End);
                    $('#deleteEvent').show();
                    $('#title_popup').html('Update');
                    $('#stack1_click').trigger('click');
                }
            },
             events: {
                url: base_url+'employees/fetch_events', 
            },
            eventMouseover: function(calEvent, jsEvent) {  

                if(calEvent.message!="" && typeof(calEvent.message)!="undefined"){      
                var tooltip = '<div class="tooltipevent" style="width:100px;height:100px;background:#ccc;position:absolute;z-index:10001;">' + calEvent.message + '</div>'; 
                $("body").append(tooltip);
                $(this).mouseover(function(e) {
                    $(this).css('z-index', 10000);
                    $('.tooltipevent').fadeIn('500');
                    $('.tooltipevent').fadeTo('10', 1.9);
                }).mousemove(function(e) {
                    $('.tooltipevent').css('top', e.pageY + 10);
                    $('.tooltipevent').css('left', e.pageX + 20);
                });
                }
            },          
            eventMouseout: function(calEvent, jsEvent) {
                 $(this).css('z-index', 8);
                 $('.tooltipevent').remove();
            }, 
        });

或者更加精彩的是这件作品:

eventMouseover: function(calEvent, jsEvent) {  

                if(calEvent.message!="" && typeof(calEvent.message)!="undefined"){      
                var tooltip = '<div class="tooltipevent" style="width:100px;height:100px;background:#ccc;position:absolute;z-index:10001;">' + calEvent.message + '</div>'; 
                $("body").append(tooltip);
                $(this).mouseover(function(e) {
                    $(this).css('z-index', 10000);
                    $('.tooltipevent').fadeIn('500');
                    $('.tooltipevent').fadeTo('10', 1.9);
                }).mousemove(function(e) {
                    $('.tooltipevent').css('top', e.pageY + 10);
                    $('.tooltipevent').css('left', e.pageX + 20);
                });
                }
            },

我不知道你打算用calEvent.message做什么,但你可以做的就是在测试时更改这个,以便忽略所有“falsy”值(包括测试空字符串,undefined和null)这将产生错误:

if(calEvent.message)