【问题标题】:retrieve events which has a specific class in fullcalendar检索在 fullcalendar 中具有特定类的事件
【发布时间】:2014-12-23 07:58:15
【问题描述】:

我想获取只有特定类的客户端事件。我需要获取具有特定类的事件对象。我尝试了以下两种方法。

1. $('#calendar').fullCalendar('clientEvents',{className: 'class'}
2. $('#calendar').fullCalendar('clientEvents',{className: ['class']}

没用。

【问题讨论】:

    标签: fullcalendar


    【解决方案1】:

    您是要获取实际的事件对象,还是仅获取 DOM 元素? 也许更多关于你想要做什么的信息。

    我假设你知道你可以这样做:

    $('#calendar .class-you-want')
    

    获取日历内的任何 DOM 项目。 如果您在事件对象中设置了类,那么您应该获得该类的所有“a”链接元素。

    另一种选择是使用

    $('#calendar').fullCalendar('clientEvents');
    

    这将返回所有事件的列表,然后您可以检查事件 className 例如:

    $.each( $('#calendar').fullCalendar('clientEvents'), function(index, event) {
        if( event.className == 'class-searched' ) { //do something }
    });
    

    在完整的日历设置中:

    $('#calendar').fullCalendar({ ...
        eventRender: function(event, element, view) {
            element.attr('data-id', event.id);
            element.attr('data-SomeEventData', event.SomeEventData);
        }
    });
    

    您的事件数据可能如下所示:

    [{ 
        "id": "event1", 
        "title": "event title", 
        "start": "2014-12-29T09:00:00", 
        "SomeEventData": "special data you pass that calendar ignores but you add to the 'a' attribute" 
    }]
    

    【讨论】:

    • 感谢您的回答。我需要实际的 Event 对象。我们应该使用循环来获取这个事件对象吗?没有其他方法可以做到这一点吗?
    • 第二部分中的 'event't 对象返回实际的事件对象。当你发送事件数据时,你可以添加属性,这样当你以这种方式循环时,你可以找到你想要的。我还没有找到更快的方法来选择特定事件。另一种选择是再次通过 JSON 获取事件并以这种方式使用它们。
    • 另一种想法:您可以覆盖 eventRender 事件,并为事件元素添加各种很棒的东西(通过 data-XXX 标签)。我这样做是为了无需循环即可快速获取特定事件和信息(但不需要整个事件对象)。
    • 非常感谢您的评论。您能否通过一个简单的示例来添加此评论作为答案,说明如何使用 data-XXX 标签。
    • 更新了@Charith 以显示将数据标签添加到事件“a”HTML 元素中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    相关资源
    最近更新 更多