文档说调度程序更改事件是"当用户在调度程序中选择一个单元格或事件时触发。"
大。问题是在浏览器窗口调整大小时也会触发事件。我的应用程序现在认为当调整浏览器窗口的大小时,用户单击了一个单元格。
我如何区分这两个条件?
答案 0 :(得分:0)
以为我在这里得到了答案,但没有骰子。不知道是什么原因导致调度程序在调整大小时触发更改事件。我在Marionette JS视图中展示它。也许这与它有关?不确定。它不应该。
我知道这一切都正确连线,因为点击时日历工作正常 - 根据日历插槽是否有事件或空白显示正确的视图。但是当窗口调整大小时,更改事件会触发,导致我的应用程序触发视图更改。调度程序更改事件中的断点确认它在窗口调整大小时触发。
下面我尝试根据各个帖子中的一些处方,放弃更改事件以支持onClick。丑陋的代码,但它在Chrome中有效。不幸的是在其他浏览器中不起作用。为什么没有“onClick”事件?我只看了一个竞争调度程序产品,它有一个。
仅限Chrome解决方案:下面的“e”是onClick事件对象:
//Get the element ID - the DOM ID of the thing that was clicked. You'll use it to
//dip into the scheduler data model to get the event specific data you're after.
var uid = e.toElement.parentElement.parentElement.attributes[2].nodeValue;
//Get a reference to the scheduler data model
var scheduler = $("#scheduler").data('kendoScheduler');
//Use the uid to find the event associated with the click action
var event = scheduler.occurrenceByUid(uid);
以下是帮助制定Chrome解决方案的帖子:
Call Scheduler events from EventTemplate
Kendo UI scheduler doesn't allow for reliable cell click event handling
问题显然是它在其他浏览器中不起作用。该uid值(e.toElement.parentElement.parentElement.attributes 2。nodeValue)位于不同浏览器的不同位置。所以这个解决方案是不行的。
我不知道这样的产品怎么没有onClick事件。可能必须使用不同的日历。很沮丧。
手头的问题是我在Marionette js项目视图中呈现此日历。单击调度程序单元格项时,我将用户带到另一个视图。但是调度程序用来处理点击的事件“更改”也会在浏览器窗口调整大小时触发。因此,在浏览器窗口调整大小我的应用程序将用户带到不同的视图。不好。没有解决方法。