javascript 在fullcalendar中添加事件悬停文本

esbemjvw  于 2023-04-28  发布在  Java
关注(0)|答案(9)|浏览(146)

我试图包括一个悬停文本的事件在一个完整的日历页。
我有一个数组对象来声明需要在页面上加载的事件,这些事件是由php脚本加载的。如下所示:

$('#calendar').fullCalendar({
events: [
    {
        title  : 'event1',
        start  : '2010-01-01'
    },
    {
        title  : 'event2',
        start  : '2010-01-05',
        end    : '2010-01-07'
    }
]

});
我尝试使用eventMouseover函数在每个事件中包含一个悬停文本。该函数的原型如下:function(event,jsEvent,view){ }其中event是事件对象,jsEvent是带有低级信息(如鼠标坐标)的原生JavaScript事件。并且视图保存FullCalendar的视图对象。我无法正确调用此函数的参数。我的信息来自这里:http://arshaw.com/fullcalendar/docs/mouse/eventMouseover/和我完全冷静的其他方法实现一个hovertext在每个事件。谢谢大家。

vd2z7a6w

vd2z7a6w1#

你的方向是对的。我做了一些类似的事情,在日程视图中的事件底部显示事件结束时间。

日历选项:

eventMouseover: function(event, jsEvent, view) {
    $('.fc-event-inner', this).append('<div id=\"'+event.id+'\" class=\"hover-end\">'+$.fullCalendar.formatDate(event.end, 'h:mmt')+'</div>');
}

eventMouseout: function(event, jsEvent, view) {
    $('#'+event.id).remove();
}

悬停的CSS:

.hover-end{padding:0;margin:0;font-size:75%;text-align:center;position:absolute;bottom:0;width:100%;opacity:.8}

希望这对你有帮助!

tktrz96b

tktrz96b2#

没有 Bootstrap ,甚至更简单地添加只是浏览器工具提示与

eventRender : function(event, element) {
   element[0].title = event.title;
}
8ljdwjyq

8ljdwjyq3#

如果你正在使用bootstrap,这是一个非常优雅的解决方案:

eventRender: function(event, element) {
     $(element).tooltip({title: event.title});
 }

(我从这个答案中得到:https://stackoverflow.com/a/27922934/2941313

hs1ihplo

hs1ihplo4#

对我来说,这是我所做的,因为我需要修改其他伟大的答案。
HTML:

(eventRender)="addHoverTitle($event)"

组件:

addHoverTitle(args: any): void {
   args.el.title = args.event.title;
}
tzcvj98z

tzcvj98z5#

在FullCalendar版本4中,只有一个参数:eventRender:function(info),所以代码段是:
使用Bootstrap

eventRender: function (info) {
  $(info.el).tooltip({ title: info.event.title });
}
gpnt7bae

gpnt7bae6#

如果您使用的是fullcalendar版本5:
eventMouseEnter:function(info){el.title = info.event.start;},

mzmfm0qo

mzmfm0qo7#

如果您使用的是Angular
Html:

<full-calendar 
 ...
 (eventLeave)="eventLeave($event)">
</full-calendar>

typescript :

eventRender($event) {
  $event.el.title = $event.event.title;
}
dy2hfwbg

dy2hfwbg8#

在日历选项中,我为我的angular项目使用了这个:

eventMouseEnter: function (calEvent) {
    calEvent.el.title = calEvent.event.title;
},
vsdwdz23

vsdwdz239#

eventDidMount: function(info) {
                if(info.view.type!='timeGridDay'){
                    $(info.el).tooltip({ title: info.event.title });    
                }
            }

对于v4,我们可以使用“eventRender”https://fullcalendar.io/docs/v4/eventRender
对于v5、v6,我们可以使用“eventDidMount”https://fullcalendar.io/docs/event-object

相关问题