感谢@ADyson的有用建议:使用 CSS 隐藏。
更好的是,使用eventClassNames非常简单,每次渲染的类都会“重置”。
我最终得到了什么:
...
.fc-event.hidden {
display: none;
}
let calendar = new Calendar(calendarEl, {
...
eventClassNames: function(info) {
var classes = []
if (info.view.type == 'dayGridMonth' && info.event.title == 'break') {
classes.push('hidden')
}
// other rules for classes
return classes
}
...
}
一个问题:隐藏事件之后,下一个有一个margin-top: 18px
导致差距:
<div class="fc-daygrid-event-harness fc-daygrid-event-harness-abs" style="visibility: hidden;">
<a class="fc-daygrid-event fc-daygrid-dot-event fc-event fc-event-start fc-event-end fc-event-past city hidden" href="xyz" style="color: black;">
<div class="fc-daygrid-event-dot" style="..."></div>
<div class="fc-event-title">break</div>
</a>
</div>
<div class="fc-daygrid-event-harness" style="margin-top: 18px;">
<a class="fc-daygrid-event fc-daygrid-dot-event fc-event fc-event-start fc-event-end fc-event-past" href="http://xyz" style="color: black;">
<div class="fc-daygrid-event-dot" style="..."></div>
<div class="fc-event-title">1st event after hidden events</div>
</a>
</div>