单击 FullCalendar 编辑资源
FullCalendar edit resource on click
所以我使用的是 FullCalendar 库版本 3 中的调度程序插件。我的事件系统已经在运行,让我可以通过模式框在单击时编辑事件。
现在我想对资源做同样的事情,但我在那里碰壁了。
除其他外,我试过这个
resourceRender: function(resource, cellEls) {
cellEls.on('click', function(resource) {
$.getScript(resource.edit_url);
})
}
但我无法访问 cellEls 方法中的资源。
我没有找到这方面的任何例子,所以我什至不确定它是否可能。
有什么想法吗?
提前致谢
任何 "click" 回调的第一个参数是 JavaScript 事件对象。你无法改变这一点。
简单地允许 "resource" 对象自然地向下传播到事件处理程序中,而不是尝试重新声明它:
resourceRender: function(resource, labelTds, bodyTds) {
labelTds.on('click', function(event) {
console.log(resource);
$.getScript(resource.edit_url);
});
}
这个post已经过时了。这已经在完整日历资源时间线计划版本 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();
});
所以我使用的是 FullCalendar 库版本 3 中的调度程序插件。我的事件系统已经在运行,让我可以通过模式框在单击时编辑事件。
现在我想对资源做同样的事情,但我在那里碰壁了。
除其他外,我试过这个
resourceRender: function(resource, cellEls) {
cellEls.on('click', function(resource) {
$.getScript(resource.edit_url);
})
}
但我无法访问 cellEls 方法中的资源。
我没有找到这方面的任何例子,所以我什至不确定它是否可能。
有什么想法吗? 提前致谢
任何 "click" 回调的第一个参数是 JavaScript 事件对象。你无法改变这一点。
简单地允许 "resource" 对象自然地向下传播到事件处理程序中,而不是尝试重新声明它:
resourceRender: function(resource, labelTds, bodyTds) {
labelTds.on('click', function(event) {
console.log(resource);
$.getScript(resource.edit_url);
});
}
这个post已经过时了。这已经在完整日历资源时间线计划版本 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();
});