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

イベント イベントの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 に答える
2

剣道の制限の例で指定されたすべてのイベントを実装し、条件が正常に機能しない場合は常にデフォルトの動作を防止する必要があります。

参考:剣道制限イベント説明

変更によるイベントを無効にしたい場合は、すべてのイベント (つまり、編集、保存、サイズ変更、移動) を処理する必要があります。イベントは以下の通りです。

    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 に答える