【问题标题】:fullcalendar.io removeEventSource on dynamic eventsfullcalendar.io removeEventSource 关于动态事件
【发布时间】:2015-11-23 17:51:49
【问题描述】:

我将事件源动态添加到全日历对象 (addEventSource)。

我不明白如何引用这些事件源以使用 removeEventSource 删除它们。

我这里有一个例子: http://jsfiddle.net/64L4npzo/

calendar = jQuery("#calendar").fullCalendar();

event_count = 0;
jQuery(document).on("click", ".add_random_event", function() {
    event_count++;
    var json_source = [ { title  : 'event to remove', start  : '2015-11-04' } ];
    calendar.fullCalendar('addEventSource', json_source);
    jQuery("<div class='remove_event_source' event_count='" + event_count + "'>Remove Event " + event_count + "</div><br>").appendTo("#event_removal");

});

jQuery(document).on("click", ".remove_event_source", function() {
    calendar.fullCalendar("removeEventSource", jQuery(this).attr("event_count"));
    console.log("Tried to remove event #" + jQuery(this).attr("event_count"));                
});

我已阅读此解决方案,但不知道如何应用它:Problem removing event sources from FullCalendar (jQuery)

【问题讨论】:

    标签: fullcalendar


    【解决方案1】:

    如果您将源对象作为数据属性附加到“删除此源”按钮,则以后可以将该数据属性用作 removeEventSource 方法中的源。

    在 addEventSource 期间:

    jQuery("<div class='remove_event_source' event_count='" + event_count + "'>Remove Event " + event_count + "</div><br>").data('source', json_source).appendTo("#event_removal");
    

    使用 removeEventSource 时:

    calendar.fullCalendar("removeEventSource", jQuery(this).data('source'));
    

    我还进行了一些更改以确保您的源对象是唯一的并更新了 jsfiddle:http://jsfiddle.net/64L4npzo/4/

    【讨论】:

    • 谢谢...这正是我想要的。还可以帮助我了解 removeEventSource 在做什么。
    【解决方案2】:

    要删除事件,您需要一个来源。源可能是提供一些关于事件的数据的对象。

    You can see the list of event source options here

    因此,在您的情况下,我将 className 添加到事件中,并且事件将由该 className 引用。

    calendar = jQuery("#calendar").fullCalendar();
    
    event_count = 0;
    var json_source = [ { title  : 'event to remove', start  : '2015-11-04', className: 'test' } ];
    jQuery(document).on("click", ".add_random_event", function() {
    event_count++;   
    calendar.fullCalendar('addEventSource', json_source);
    jQuery("<div class='remove_event_source' event_count='" + event_count + "'>Remove Event " + event_count + "</div><br>").appendTo("#event_removal");
    
    });
    
    jQuery(document).on("click", ".remove_event_source", function() {
    calendar.fullCalendar("removeEventSource", json_source);
    console.log("Tried to remove event #" + jQuery(this).attr("event_count"));                
    });
    

    更新的小提琴在这里。

    http://jsfiddle.net/64L4npzo/1/

    【讨论】:

    • 这只是删除了每个来源(如果您多次单击添加事件,您会明白我的意思。)我想删除单个来源。
    猜你喜欢
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    相关资源
    最近更新 更多