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

Kendo UI scheduler doesn't allow for reliable cell click event handling

本文关键字:单元格 事件处理 许可 调度 UI Kendo      更新时间:2023-09-26

文档说调度器更改事件是"当用户选择调度器中的单元格或事件时触发"。

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

如何区分这两种情况?

我以为我有答案,但没有骰子。不知道是什么原因导致调度器在调整大小时触发更改事件。我在一个木偶JS视图中展示它。也许和这个有关?不确定。这是不应该的。

我知道这一切都是正确的,因为当单击日历时,日历工作正常-根据日历插槽是否有事件或空白显示正确的视图。但是change事件会在窗口大小调整时触发导致我的应用程序触发视图改变。调度程序更改事件中的断点确认它正在触发窗口大小调整。

下面,我根据在各种帖子中发现的一些处方,尝试放弃更改事件,转而使用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解决方案的帖子:

从EventTemplate调用Scheduler事件

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

这个问题显然是在其他浏览器中不起作用。这个uid值(e.t eelement . parentelelement . parentelelement .attributes2. nodevalue)在不同的浏览器中处于不同的位置。所以这个解是不行的。

我不知道这样的产品怎么没有onClick事件。可能要用不同的日历。非常令人沮丧。

手头的问题是我在一个木偶js项目视图中渲染这个日历。当单击调度器单元格项时,我将用户带到另一个视图。但是调度程序用来处理点击的事件"change"也会在浏览器窗口调整大小时触发。在浏览器窗口调整大小时,我的应用会把用户带到不同的视图。不好的。