我遇到一个节点(Raphael rect)附加了事件拖动的情况。
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
}
我在dragMove处理程序中将editLabelFlag设置为true,以区分拖动和单击 要停止显示浏览器上下文菜单,我已经给出了event.preventDefault()。
我面临的问题是,这种情况第一次完美无缺,并且对于所有以后右键单击节点我只获得了浏览器上下文菜单。我已经检查了Firebug并且看到contextmenu div始终显示为none,并且只是第一次变为display block。我尝试使用return false而不是event.preventDefault但是在浏览器菜单下面显示了我的菜单。
preventDefault会导致此问题吗? 请提供一些
答案 0 :(得分:1)
这不是因为浏览器停止了任何事件,实际上我正在创建一个克隆并拖动原始文件。在dragstart中,克隆放在原始位置,在点击期间不会被删除。因此,没有映射原始事件的事件适用于克隆,因此点击只发生一次。
感谢您的时间