javascript - Kendo 上下文菜单 - 防止关闭鼠标

标签 javascript kendo-ui kendo-menu

我将鼠标点击监听器绑定(bind)到多个 SVG 元素,并在点击时触发剑道上下文菜单的打开方法。如果菜单已经打开(我监听激活/停用事件以检查菜单是否打开),并且用户点击相同的元素,它应该关闭。

问题是:上下文菜单默认在鼠标按下时关闭。因此,当它打开时,用户单击它在 mousedown 上关闭并在 mouseup 上重新打开的同一元素 - 但它应在单击时关闭,而不是在 mousedown 上关闭。有没有办法直接告诉上下文菜单或者我必须通过 SVG 元素的事件来控制它? 谢谢!

最佳答案

不确定我是否理解您要执行的操作,但是您可以像这样在菜单外部单击时影响菜单是否关闭:

kendo.ui.ContextMenu.fn._closeHandler = function (closeHandler) {
    return function(e) {
        var clickInMenu = $.contains(this.element[0], e.target);

        if (clickInMenu) { // click outside will do nothing
            closeHandler.call(this, e);
        }   
    }
}(kendo.ui.ContextMenu.fn._closeHandler);

var contextMenu  =$("#context-menu").kendoContextMenu({
    target: "#target"
});

( demo )

关于javascript - Kendo 上下文菜单 - 防止关闭鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28960046/

相关文章:

javascript - ReactJS/Django 如何将搜索字符串编码到 onClick 按钮中以重定向到确切的 URL?

c# - 使用 JSON.Net 序列化数据的问题

html - 使用菜单下方的剑道分离器后,菜单不显示菜单项

javascript - 如何确保在禁用时提交 <select> 表单字段?

javascript - 调用 API 的 ajax 的最佳位置是什么?

javascript - Node 回调 - 为什么这不起作用?

asp.net-mvc - 使用 MVC 动态地使用 Kendo UI 图表标题

javascript - Kendo 饼图实现

javascript - Kendo菜单一次选择多个项目,ASP.NET MVC