Что произойдет, если событие будет помещено в два столбца?(то есть, потому что это 10 дней)
Я смотрю на источник для FullCalendar, и я не думаю, что вы найдете то, что вы хотите - element
является абсолютно позиционированным divи eventRender вызывается для каждого «сегмента» event
, поэтому, если он оборачивается, вы в конечном итоге получаете два вызова eventRender.
В любом случае, если эти «ошибки» не отговаривают вас, воттрещина в выяснении этого.Я использовал ширину / высоту строк и верхнюю часть элемента, чтобы понять это, я не вижу более элегантного способа.Обратите внимание, что вы захотите изменить бит .fc-view-month
на селектор, который начинается с вашего фактического идентификатора календаря.
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);
}
Это предупредит вас «строкой», определенной календарем, то есть первымrow это на самом деле "0"
EDIT : только что понял, что eventRender вызывается до того, как элемент помещен в календарь, поэтому моя идея почти не сработает.Я изменил это на eventAfterRender
.Я думаю, что если бы это было для вас достаточно важно, то нужно было бы изменить FullCalendar так, чтобы всякий раз, когда он отправлял вам «элемент» в функции eventRender, он также отправлял вам информацию о размещении (которую он имеет в структуре с именем segs
в вызывающей функции).