【问题标题】:How to change empty event selection content in fullcalendar v5?如何更改 fullcalendar v5 中的空事件选择内容?
【发布时间】:2020-12-11 06:28:26
【问题描述】:

我想在空的时间网格事件和已经渲染的事件中显示不同的内容。我使用了eventContent,但它改变了它们的内容。

eventContent: function (event) {
        console.log(event)
        var etitle = ''
        if (event.event.title) {
            etitle = `<label title="` + event.event.title + `" class="bg-b-warning event-lbl-shadow rounded py-1 px-2 text-light " style="overflow: hidden; max-width: 100%;">` + event.event.title + `</label>`
        } else {
            etitle = ''
        }
        return {
            html: `
        <div class="st_event_container overflow-hidden w-100 p-2 row mx-auto">
            <div class="col p-0 "><label class="bg-light event-lbl-shadow rounded py-1 px-2 text-dark mr-1">`+ event.timeText + `</label></div><div class="col p-0 mb-1">` + etitle + `</div>
            
        
        </div>` }
    },

清晰的屏幕截图(蓝色事件已经渲染,半透明是空网格选择)

这里显示了4个资源,并设置在今天视图

【问题讨论】:

    标签: javascript jquery fullcalendar fullcalendar-5


    【解决方案1】:

    selectMirror 选项设置为true 时,似乎会发生这种情况。 (我只是为将来的读者澄清一下,因为问题中没有提到该选项的使用,但如果没有设置,就不可能发生这种行为。)

    有一种简单的方法可以区分正常事件和这些“镜像”事件 - 如果您检查提供给 eventContent 回调的信息对象(以及您在控制台中登录的代码),您会看到有一个 isMirror 属性,仅当正在呈现的元素表示镜像选择时才设置为 true。

    所以你可以这样写:

    eventContent: function(info)
    {
      if (info.isMirror == true)
      {
        //do whatever you want to do for mirror events here
      }
      else
      {
        //do whatever you want to do for regular events here
      }
    }
    

    (NB 代码质量说明:在我的示例中,我将参数重命名为“info”,因为“event”是用词不当 - 事件数据存储在 info 对象内的属性中,并编写类似 event.event.title显然很荒谬,而且因为 isMirror 不是事件的属性,所以写 event.isMirror 可能会产生误导。为某事使用错误的名称也会使您的代码在稍后返回时更难理解。)

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 2020-11-23
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多