我将鼠标单击侦听器绑定到几个SVG元素,并且 - 单击 - 触发kendo上下文菜单的open方法。如果菜单已经打开(我收听激活/取消激活事件以检查菜单是否打开),并且用户点击相同的元素,它将关闭。
问题是:鼠标按下时默认关闭上下文菜单。因此,当它打开时,用户点击它在mousedown上关闭的相同元素并在mouseup上重新打开 - 但它将在点击时关闭,而不是mousedown。有没有办法直接告诉上下文菜单,还是必须通过SVG元素的事件来控制它? 谢谢!
答案 0 :(得分:1)
我不确定您是否理解您要执行的操作,但是当您点击菜单外部时,您可以影响菜单是否关闭:
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)