jquery中的自定义上下文菜单

问题描述:

我有一种情况,其中一个节点(拉斐尔矩形)附加了事件拖动。jquery中的自定义上下文菜单

r4.drag(dragMove, dragStart, dragStop); 

在dragStop处理我拖右击事件

if (editLabelFlag == false) { 
    if (event.which == 3) { 
     event.preventDefault(); 
     $('#contextmenu').slideDown('fast').delay(1000).slideUp(); 
     // code for 
    } 
} else { 
    // drag code 
} 

我设置的editLabelFlag为true在dragMove处理器和拖动来区分点击 要停止显示浏览器的右键菜单之间的区别我给了event.preventDefault()。

我面临的问题是,这是第一次完美无瑕地发生,所有稍后右键单击节点时,我只能得到浏览器上下文菜单。我检查了Firebug,发现contextmenu div总是保持不显示,只有第一次变成显示模块。我试过使用return false而不是event.preventDefault,但是在浏览器菜单下面显示我的菜单。

是否导致此问题的preventDefault? 请提供一些

+0

此信息可能是有用的:http://*.com/a/706728/239380 – keegan3d 2012-04-10 08:18:27

+0

没有一个答案或问题,指的是在第一时间之后没有被处理的事件!我的代码的功能与Simon发布的最后一个答案类似 – kavita 2012-04-10 08:37:46

这不是由于浏览器停止任何事件,实际上我正在创建一个克隆并拖动原件。在dragstart中,克隆被放置在原始位置,在点击过程中不会被移除。因此,没有为原始映射的事件用于克隆,因此点击只发生一次。

感谢您的时间