Fullcalendar 自定义按钮切换设置filterResourcesWithEvents忽略jquery text()调用

Fullcalendar 自定义按钮切换设置filterResourcesWithEvents忽略jquery text()调用,fullcalendar,fullcalendar-scheduler,Fullcalendar,Fullcalendar Scheduler,我想添加一个自定义按钮来切换filterResourcesWithEvents选项。理想情况下,按钮会将样式更改为按下状态,但现在我只是尝试在设置选项后更改按钮文本。问题是文本没有改变 你可以在这里找到一个完整的例子 我怀疑调度器选项函数可能与文本更新发生了冲突 有人有什么建议吗?经过一点实验,我发现如果我使用类选择器来更改按钮,它就会正常工作。我不太清楚为什么 基本上,如果我将最后一行替换为: $button.fc-custom1-button.textnewFilterResourcesWi

我想添加一个自定义按钮来切换filterResourcesWithEvents选项。理想情况下,按钮会将样式更改为按下状态,但现在我只是尝试在设置选项后更改按钮文本。问题是文本没有改变

你可以在这里找到一个完整的例子

我怀疑调度器选项函数可能与文本更新发生了冲突


有人有什么建议吗?

经过一点实验,我发现如果我使用类选择器来更改按钮,它就会正常工作。我不太清楚为什么

基本上,如果我将最后一行替换为:

$button.fc-custom1-button.textnewFilterResourcesWithEvents?“过滤开’:“过滤关”;


我希望类命名保持一致。

您的代码笔链接已断开。画笔似乎缺少fullCalendar Scheduler CSS文件,这可能是时间轴布局怪异的原因。这不会影响按钮的其他问题,但我想我会提到它。我认为问题在于,当单击功能运行时,某些东西正在重新绘制整个日历,包括按钮,从而重置其状态。可能是因为您正在运行筛选器。您最好在标题中使用完全自定义的内容,例如您提供的单选按钮/下拉列表,而不是通过fullCalendar的自定义按钮功能添加。您仍然可以很容易地将内容插入标题栏。如果您可以在viewRender或eventAfterAllRender回调中设置按钮的状态并查看它是否被保留,则可能值得一看。我的想法是,日历画好之后。此时仍可以使用与现在相同的方法检查过滤器选项值。同时,你点击按钮所要做的就是设置过滤器选项
custom1: {
 text: 'Filter off',
 click: function() {
        var cal = $('#calendar').fullCalendar('getCalendar');
        var newFilterResourcesWithEvents = ! cal.option('filterResourcesWithEvents');
        cal.option('filterResourcesWithEvents', newFilterResourcesWithEvents);
        // The following line being ignored.
        $(this).text(newFilterResourcesWithEvents ? 'Filter on' : 'Filter off');
}},