如何通过AlloyUI Scheduler检测日程项移动事件
解决AlloyUI Scheduler日程项移动时的提示触发问题
你遇到的问题很常见——edit事件确实只针对手动打开编辑表单修改日程项的场景,而拖动改变时间/日期、调整日程时长这类操作是不会触发它的。
要处理日程项移动(包括拖动改时间/日期、调整时长)的场景,你需要监听AlloyUI SchedulerEventRecorder的**move和resize**事件:
move:当你拖动日程项到新的日期或时间点时触发resize:当你调整日程项的长度(改变结束时间)时触发
如果希望这两种操作都弹出提示,可以把它们加到你的事件监听里,修改后的代码片段如下:
var eventRecorder = new Y.SchedulerEventRecorder({ on: { save: function (event) { alert('Save Event:'); }, edit: function (event) { alert('Edit Event:'); }, 'delete': function (event) { alert('Delete Event:'); }, move: function (event) { // event.target 可获取被移动的日程项对象 alert('Moved Event: ' + event.target.get('title')); }, resize: function (event) { alert('Resized Event: ' + event.target.get('title')); } } });
另外,如果想统一处理所有日程项时间变更的场景(不管是拖动还是调整大小),也可以监听**update**事件,它会在日程项的任何属性(包括时间)被修改时触发:
var eventRecorder = new Y.SchedulerEventRecorder({ on: { // ... 其他已有的事件监听 update: function (event) { alert('Event Updated: ' + event.target.get('title')); } } });
这样就能覆盖到你需要的日程项移动/时间变更的提示场景啦。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

