Fullcalendar插件在悬停时出现Javascript错误

Fullcalendar plugin Javascript error on hover

本文关键字:Javascript 错误 插件 悬停 Fullcalendar      更新时间:2023-09-26

我没有足够的JavaScript知识,这就是为什么我问这个问题。在我的网站的员工名册仪表板我得到了一些javascript错误时,悬停在一些日期,如日期8日,9日和7日9月。悬停时,它显示一个带有"null"错误信息的框。它能被移除吗?

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

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

我确信有一个悬停事件的服务器正在被调用,但黑客的解决方案是给这个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做什么。消息,但是你可以做的是改变这个if测试,这样所有的" false "值都会被忽略(包括你对空字符串,undefined和null的测试),它们都会产生一个false:

if(calEvent.message)