jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 使用FullCalendar和removeEvents方法过滤事件onclick大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用FullCalendar来显示来自 JSON提要的事件.它使用以下代码正常工作:

$(document).ready(function() {

// Initialize calendar
$('#calendar').fullCalendar({   
    header: {
        left: 'prev',center: 'title',right: 'next'
    },buttontext: {
        prev: 'PrevIoUs month',next: 'Next month'
    },columnFormat: {
        month: 'dddd'
    },editable: false,events: "events.json",disableDragging: true,});

我正在尝试创建一个链接,使用removeEvents方法过滤事件(理想情况下,它将一个选择菜单).当我使用该方法并传入ID时,该事件将被删除.文件说明:

我读到过滤器函数应该像jQuery的grep方法一样运行,但我不明白如何实现它.我开始写下面的内容,但我不确定如何继续.任何建议或例子将不胜感激!

...

$('#filter').click(function() {
     $('#calendar').fullCalendar ( 'removeEvents',filter(events) );
}

...

function filter (events) {
...
}

解决方法

如果您使用选择来完成此操作,则需要某种方式来关联选择中的选项和日历中的事件.我已经让选项的ID与日历中的事件相匹配:

JavaScript(使用fullCalendar的events属性):

events: [
    {
        id: 'event-1',title: 'Christmas Eve',start: '2010-12-24',allDay: true
    },{
        id: 'event-2',title: 'Christmas Day',start: '2010-12-25',{
        id: 'event-3',title: 'Boxing Day',start: '2010-12-26',allDay: true
    }
]

您的事件源不必是数组,这仅适用于我创建的示例.

HTML:

<SELEct id="filter">
    <option id="event-1">Christmas Eve</option>
    <option id="event-2">Christmas Day</option>        
    <option id="event-3">Boxing Day</option>        
</SELEct>

现在,正如您所描述的,removeEvent函数接受一个事件对象并返一个布尔值,指示是否应该删除该事件:

function filter(event) {
    return $("#filter > option:SELEcted").attr("id") === event.id;
}

如果在带有id过滤器的SELEct下选择的选项的id与传递给它的事件的id匹配,则过滤器函数的作用是返回true.只要它返回Truefalse,这个函数就可以是任何东西.

它的工作方式是当你调用removeEvent并传递你的函数时,生活在日历上的每个事件都会传递给该函数,如果返回true,则删除该事件.

做了一个工作示例(http://jsfiddle.net/andrewwhitaker/QMyFu/),其中还包括过滤函数和选择元素的另一个示例.

希望有所帮助!

@H_674_52@

大佬总结

以上是大佬教程为你收集整理的jquery – 使用FullCalendar和removeEvents方法过滤事件onclick全部内容,希望文章能够帮你解决jquery – 使用FullCalendar和removeEvents方法过滤事件onclick所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。