如何禁用Kendo-ui Scheduler双击事件触发的默认编辑弹窗
Kendo UI Scheduler 禁用双击默认编辑弹窗的实现方法
下面提供两种适配不同业务场景的实现方案:
方案1:全局拦截编辑事件(推荐)
适合需要完全替换默认编辑弹窗的场景,无需额外绑定事件,使用组件原生支持的edit事件拦截逻辑,不影响拖拽调整事件时间、选中时间段新建等其他编辑操作:
$("#scheduler").kendoScheduler({ // 此处保留你已有的其他配置:dataSource、date、views等 edit: function(e) { // 直接阻止默认编辑弹窗弹出 e.preventDefault(); // 可直接调用自定义弹窗打开逻辑,通过e.event拿到当前触发编辑的日程数据 const targetScheduleEvent = e.event; // 调用你自己的弹窗方法:openCustomEditModal(targetScheduleEvent) } });
方案2:单独拦截双击事件
适合只需要禁用双击触发的默认弹窗,其他场景(比如点击事件菜单的编辑按钮)仍保留默认弹窗的场景:
// 拦截日程事件的双击行为 $("#scheduler").on("dblclick", ".k-event", function(e) { e.preventDefault(); e.stopPropagation(); // 拿到当前点击的日程数据 const scheduler = $("#scheduler").data("kendoScheduler"); const targetScheduleEvent = scheduler.occurrenceByUid($(this).data("uid")); // 调用你自己的弹窗方法:openCustomEditModal(targetScheduleEvent) }); // 若同时需要禁用空白区域双击触发的新建默认弹窗,可添加以下拦截 $("#scheduler").on("dblclick", ".k-scheduler-work-space td", function(e) { e.preventDefault(); e.stopPropagation(); // 若有自定义新建弹窗可在此处调用 });
注意事项
不要直接将配置项editable设为false,该配置会全局禁用所有编辑相关能力,包括拖拽调整事件时长、删除事件等,不符合自定义弹窗的常规业务需求。
内容的提问来源于stack exchange,提问作者Anil c m
相关产品推荐
相关产品推荐

