代码之家  ›  专栏  ›  技术社区  ›  CFML_Developer

jQuery FullCalendar>如何添加按钮(或链接)到只有天有事件

  •  0
  • CFML_Developer  · 技术社区  · 7 年前

    我正在使用FullCalendar3.5.1。

    我想在当天的所有事件渲染完毕后,添加一个到事件日的自定义链接。

    如果我使用 eventAfterRender ,它在每个事件后显示链接。因此,如果有3个事件,它会显示3个链接,而我只需要一个。

    eventAfterRender: function(event, element, view) { 
        console.log(event);
        var new_description ='<br/><a href="javascript:dayDetails('+ '&#39;'
        +'template.html' + '&#39;'+',500,400,' + '&#39;'+event.start +'&#39;' 
        +',' + '&#39;'+ 'dayView' + '&#39;' +')">'
        + '<strong>Details</strong>'  + '</a>' + '&nbsp;&nbsp;&nbsp;&nbsp;'
        element.append(new_description); 
    }
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Don't Panic    7 年前

    这里有一种方法。另一种选择可能是尝试使用 clientEvents 检索所有事件并对其进行迭代。

    已更新 Jsfiddle包括工作、定位和链接。

    Working JSFiddle .

    首先,使用 eventRender (或 eventAfterRender )回调以在呈现每个事件时对其进行标记:

    eventRender: function(event, element) {
        // Add a class to the event element
        element.addClass('event-on-' + event.start.format('YYYY-MM-DD'));
    }
    

    接下来,使用 eventAfterAllRender

    eventAfterAllRender: function (view) {
        // This iterates over each visible day
        $('#calendar .fc-day.fc-widget-content').each(function(i) {
            // Fullcalendar includes a date data element on each day
            var date = $(this).data('date');
    
            // Now we can search for events on this day, using the date
            // and the CSS class we flagged events with
            var count = $('#calendar a.fc-event.event-on-' + date).length;
    
            // If there are some events on this day, you can add your link.
            if (count > 0) {
                $(this).append('<a class="foo" href="https://google.com/" target="_blank">Go</a>');
            }
        });
    }
    

    最后是一些CSS来定位链接:

    .fc-widget-content {
        position: relative;
    }
    
    .foo {
        position: absolute;
        right: 0;
      bottom: 0;
    }
    

    这基本上是在 this question ,这可能也有帮助。