2
我上SVG畫布對象執行文本菜單:JQuery的文本菜單 - 處理右擊另一個目的
onContextMenu:function (x, y) {
$('#contextMenuBase').remove();
$('#canvas').append('<div id="contextMenuBase"' +
'style="position: absolute; height:1px; width:1px; left: ' + x + 'px; top: ' + y + 'px; "></div>');
$.contextMenu({
selector:'#contextMenuBase',
events:{
hide:function() {
$('#contextMenuBase').remove();
$.contextMenu('destroy');
}
},
callback:$.proxy(function (key, options) {
switch (key) {
case "delete_figure":
this.setColor("ff0000");
break;
case "delete_table":
this.setColor("00ff00");
break;
default:
break;
}
}, this),
x:0,
y:0,
items:{
delete_figure:{name:"Delete Figure"},
delete_table:{name:"Delete Table"}
}
});
}
SVG元素不能與選擇器被稱爲,所以在指針位置創建1個像素的div並使用它並觸發對象。當用戶點擊外部菜單時,它被銷燬。
我只有一個挑戰。如果兩個對象有上下文菜單,並且我先右鍵單擊,然後右鍵單擊第二個,則第一個上下文菜單應該消失,第二個出現。但在我的情況下調用hide()方法,第一個菜單被銷燬,但畫布不會接收到右鍵單擊事件,因此不會創建第二個菜單。
如何解決?
謝謝, 鮑里斯。