ノード (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 に設定しています。
私が直面している問題は、これが初めて問題なく発生し、後でノードを右クリックしてもブラウザのコンテキスト メニューしか表示されないことです。Firebug をチェックインしたところ、contextmenu div は常に表示なしのままで、初めて表示ブロックになったときにのみ表示されることがわかりました。event.preventDefault の代わりに return false を使用してみましたが、ブラウザ メニューの下にメニューが表示されます。
preventDefault がこの問題の原因ですか? いくつか提供してください