Menú contextual de posicionamiento

Estoy tratando de posicionar un menú contextual personalizado con jQuery.
La primera vez que aparece en la posición correcta (coordenadas del mouse), pero luego la posición actual se está sumando a la nueva posición, de modo que el menú desaparece de la pantalla.
Aquí está el JavaScript:

<script>
$(function(){
    $('#box').hide();

    $(document).bind("contextmenu", function(e) {
        $("#box").offset({left:e.pageX, top:e.pageY});
        $('#box').show();
        e.preventDefault();
    });

    $(document).bind("click", function(e) {
        $('#box').hide();
    });
    $('#box').bind("click", function(e) {
        $('#box').hide();
    });
});
</script>

Respuestas a la pregunta(3)

Su respuesta a la pregunta