Kendo UI调度程序不允许可靠的单元格点击事件处理

时间:2016-08-18 20:36:04

标签: javascript kendo-ui scheduler

文档说调度程序更改事件是"当用户在调度程序中选择一个单元格或事件时触发。"

大。问题是在浏览器窗口调整大小时也会触发事件。我的应用程序现在认为当调整浏览器窗口的大小时,用户单击了一个单元格。

我如何区分这两个条件?

1 个答案:

答案 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项目视图中呈现此日历。单击调度程序单元格项时,我将用户带到另一个视图。但是调度程序用来处理点击的事件“更改”也会在浏览器窗口调整大小时触发。因此,在浏览器窗口调整大小我的应用程序将用户带到不同的视图。不好。没有解决方法。