1

所以我正在使用来自 FullCalendar 库版本 3 的调度程序插件。我已经让我的事件系统工作,让我通过模式框编辑点击事件。

现在我想对资源做同样的事情,但我在那里碰壁了。

除其他外,我试过这个

resourceRender: function(resource, cellEls) {
    cellEls.on('click', function(resource) {
        $.getScript(resource.edit_url);
    })
}

但我无法访问 cellEls 方法中的资源。

我没有找到任何这样的例子,所以我什至不确定这是否可能。

有任何想法吗 ?提前致谢

4

2 回答 2

1

任何“点击”回调的第一个参数是 JavaScript 事件对象。你无法改变这一点。

只需让“资源”对象自然地向下传播到事件处理程序中,而不是尝试重新声明它:

resourceRender: function(resource, labelTds, bodyTds) {
    labelTds.on('click', function(event) {
        console.log(resource);
        $.getScript(resource.edit_url);
    });
}
于 2017-06-14T10:23:36.437 回答
0

这篇文章已经过时了。此后,在完整日历资源时间线计划版本 4.0 中已更改。我在 DOM 对象 'el' 中使用了 'addEventListener' 请参阅下面的调用 'resourceRender' 的代码片段,这样您就可以看到如何在渲染完成后访问资源单元格上的点击事件。

    document.addEventListener('DOMContentLoaded', function () {
   var calendarEl = document.getElementById('calendar');
   var calendar = new FullCalendar.Calendar(calendarEl, {
        schedulerLicenseKey: '<hidden>',
        plugins: ['interaction', 'resourceTimeline'],
        resourceLabelText: 'Resources',
        resources: "<see fullcalendar support docs>",
        events: "<see fullcalendar support docs>",
        resourceRender: function (renderInfo) {
           renderInfo.el.addEventListener("click", function(){ console.log('clicked:' + renderInfo.resource.id); });
        }
    });
         calendar.render();
});
于 2019-07-22T23:00:25.990 回答