有没有办法在 kendo ui 调度程序中禁用特定事件?
Posted
技术标签:
【中文标题】有没有办法在 kendo ui 调度程序中禁用特定事件?【英文标题】:Is there a way to disable a specific event in kendo ui scheduler? 【发布时间】:2014-10-01 07:34:21 【问题描述】:我正在使用 Kendo UI、js 和调度程序组件。
我的问题是,是否有办法从调度程序中禁用特定事件。
我找到this,但这会禁用调度程序中的所有事件。我只想禁用一个特定的事件。代码应该是这样的>
function disableEvents()
var data = $("#scheduler").data("kendoScheduler").dataSource.data();
data.forEach(function(event)
if(event.ID='2')
event.disable = true; //I have tried with event.editable = true;
);
我找不到该属性可编辑或禁用,或类似的东西。也许有一种方法可以使用 jquery 禁用它。有人可以帮帮我吗?
谢谢!
【问题讨论】:
【参考方案1】:使用事件事件的preventDefault
方法:
$("#scheduler").kendoScheduler(
date: new Date("2013/6/6"),
views: ["day", "month"],
dataSource: [
id: 1,
start: new Date("2013/6/6 08:00 AM"),
end: new Date("2013/6/6 09:00 AM"),
title: "Interview editable"
,
id: 2,
start: new Date("2013/6/6 06:00 AM"),
end: new Date("2013/6/6 07:00 AM"),
title: "Interview not editable"
],
edit: function (e)
if (e.event.id === 2)
e.preventDefault();
);
(demo)
【讨论】:
【参考方案2】:您将需要执行 Kendo 限制示例中指定的所有事件,并在您的条件不成功时防止默认行为。
供参考:Kendo Restriction Events Description。
如果您想禁用任何事件的任何更改,您将需要处理所有事件(即编辑、保存、调整大小、移动)。事件如下:
resize: function(e)
if (e.event.meetingID = 1)
this.wrapper.find(".k-marquee-color").addClass("invalid-slot");
e.preventDefault();
,
move: function(e)
if (e.event.meetingId = 1)
this.wrapper.find(".k-event-drag-hint").addClass("invalid-slot");
,
save: function(e)
if (e.event.meetinID = 1)
e.preventDefault();
,
edit: function (e)
if (e.event.meetinID = 1)
e.preventDefault();
我已根据您的情况更新了剑道限制示例:Demo
【讨论】:
以上是关于有没有办法在 kendo ui 调度程序中禁用特定事件?的主要内容,如果未能解决你的问题,请参考以下文章