Javascript FullCalendar:如何标识元素的日历行?

Javascript FullCalendar:如何标识元素的日历行?,javascript,jquery,fullcalendar,Javascript,Jquery,Fullcalendar,在fullcalendar的eventRender上,我想确定元素属于日历的哪一行 eventRender: function(event, element) { //find calendar row of the element } 如果事件被包装在两列上会发生什么?(即,因为它长达10天) 我正在查看FullCalendar的源代码,我不认为您会找到您想要的-元素是一个绝对定位的div,并且为事件的每个“段”调用eventRender,因此如果它包装,您将得到两个eventRen

在fullcalendar的eventRender上,我想确定元素属于日历的哪一行

eventRender: function(event, element) {
    //find calendar row of the element
}

如果事件被包装在两列上会发生什么?(即,因为它长达10天)

我正在查看FullCalendar的源代码,我不认为您会找到您想要的-元素
是一个绝对定位的div,并且为
事件
的每个“段”调用eventRender,因此如果它包装,您将得到两个eventRender调用

不管怎么说,如果那些“怪癖”不能阻止你,这里有一个解决办法。我使用了行宽/行高与元素顶部的对比来计算它,我真的没有看到更优雅的方式。注意:您需要将
.fc view month
位更改为从实际日历ID开始的选择器

eventAfterRender: function(event,element){
    var level = undefined;
    var elTop = $(element).position().top;
    $('.fc-view-month tr[class^="fc-week"]').each(function(){
       var rowTop = $(this).position().top;
       var height = $(this).height();
       if (elTop >= rowTop && elTop < rowTop + height){
           level = $(this).attr('class').replace('fc-week','');
           return false;
       }
    });
    alert(level);
}
eventAfterRender:函数(事件,元素){
var级别=未定义;
var elTop=$(元素).position().top;
$('.fc view month tr[class^=“fc week”]')。每个(函数(){
var rowTop=$(this).position().top;
var height=$(this.height();
如果(elTop>=行顶(&elTop<行顶+高度){
级别=$(this.attr('class')。替换('fc-week','');
返回false;
}
});
警报(级别);
}
这将使用日历定义的“行”提醒您,即第一行实际上是“0”

编辑:刚刚意识到eventRender是在元素放在日历上之前调用的,所以我的想法几乎行不通。我已将其更改为
eventAfterRender
。我认为如果它对您足够重要,那么要做的事情就是修改FullCalendar,这样每当它在eventRender函数中向您发送“元素”时,它也会向您发送位置信息(它在调用函数中的结构称为
segs