2

我正在使用 Kendo UI、js 和调度程序组件。

我的问题是,是否有办法从调度程序中禁用特定事件。

我找到了这个,但这会禁用调度程序中的所有事件。我只想禁用一个特定的事件。代码应该是这样的>

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 禁用它。有谁能够帮我?

谢谢!

4

2 回答 2

2

您将需要实现 Kendo 限制示例中指定的所有事件,并在您的条件不成功时防止默认行为。

供参考:剑道限制事件说明

如果您想从任何更改中禁用任何事件,您将需要处理所有事件(即编辑、保存、调整大小、移动)。事件如下:

    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();
        }
    }

我已经根据您的情况更新了剑道限制示例:演示

于 2014-08-08T11:45:38.933 回答
2

使用事件事件的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();
        }
    }
});

演示

于 2014-08-07T23:26:36.307 回答