我将鼠标单击侦听器绑定到多个 SVG 元素,并在单击时触发剑道上下文菜单的打开方法。如果菜单已经打开(我正在监听激活/停用事件以检查菜单是否打开),并且用户单击相同的元素,它将关闭。
问题是:上下文菜单默认在鼠标按下时关闭。因此,当它打开时,用户单击它在 mousedown 时关闭并在 mouseup 时重新打开的同一元素 - 但它应在单击时关闭,而不是在 mousedown 时关闭。有没有办法直接告诉上下文菜单或者我必须通过 SVG 元素的事件来控制它?谢谢!
我将鼠标单击侦听器绑定到多个 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"
});
(演示)