Kendo UI日历支持多项选择:https://demos.telerik.com/kendo-ui/calendar/selection
但是,需要按住ctrl键才能选择多个日期。如果用户在日历上执行常规单击,则将清除所有现有日期。我希望日历始终处于多选模式,就像按住Ctrl键一样。
肯多(Kendo)在这里有一篇有关这样做的文章:https://docs.telerik.com/kendo-ui/knowledge-base/calendar-select-dates-click
但是,当用户在多个日期上单击并拖动时,该功能将不起作用(仅一次单击一个日期时有效)。
是否可以“替代” jQuery事件并将其ctrlKey
标志设置为true?还是有一种方法可以禁用使第二种解决方案混乱的单击和拖动功能?
----更新:
不要使用this剑道文章中的解决方法。它使缩小(到月视图)停止工作。并且单击处理程序会泄漏。请使用下面的答案。
答案 0 :(得分:1)
您可以从日历的selectable
模块中取消与拖动相关的用户事件的绑定。您将执行以下操作:
var ue = $("#calendar").getKendoCalendar().selectable.userEvents;
ue.unbind("start");
ue.unbind("move");
ue.unbind("end");
或者,如果要保留拖动功能,可以通过执行以下操作来调整拖动开始:
var selectable = $("#calendar").getKendoCalendar().selectable;
selectable.userEvents.unbind("start");
selectable.userEvents.bind("start", function(e){
e.target.removeClass("k-state-selected");
e.event.ctrlKey = true;
selectable._start(e);
});