【问题标题】:Is there a way to disable a specific event in kendo ui scheduler?有没有办法在 kendo ui 调度程序中禁用特定事件?
【发布时间】: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 禁用它。有人可以帮帮我吗?

谢谢!

【问题讨论】:

    标签: javascript jquery events kendo-ui kendo-scheduler


    【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-15
        • 2013-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多