jQuery Context Menu choca con jQuery Draggable

Estoy probando el menú contextual de jQuery con jQuery Arrastrables en un jQGrid .

El problema que tengo es que desde que agregué el menú contextual de jQuery, la acción que se puede arrastrar se activa con un solo clic (así como con el arrastre normal). Parece un poco extraño cuando hago clic derecho en una fila para obtener el menú, y luego hago clic fuera de ella en otra fila (para descartar el menú) y esa fila comienza a seguir el cursor.

¿Tiene que ver con el evt.stopPropagation(); en el siguiente fragmento de jQuery Context Menu?

 $(this).mousedown( function(e) { var evt = e; evt.stopPropagation(); $(this).mouseup( function(e) { e.stopPropagation(); var srcElement = $(this); $(this).unbind('mouseup'); if( evt.button == 2 ) { // Hide context menus that may be showing $(".contextMenu").hide(); 

¿Hay algo que pueda hacer al respecto además de elegir entre arrastrar o el menú contextual?

He tenido un problema relacionado: los elementos que se pueden arrastrar con menús contextuales adjuntos no siempre se pueden arrastrar. En mi caso, un elemento que se puede arrastrar (un elemento div que flota en un elemento de div más grande) con menú contextual adjunto solo se puede arrastrar una vez: una vez que se completó el arrastre, el elemento ya no se podía arrastrar hasta que hiciera clic en el div. Los elementos arrastrables casi idénticos sin menús de contexto siempre se podían arrastrar. ¿Por qué hacer clic en el contenedor restaurado arrastre no lo sé, pero lo hizo constantemente.

Gracias a que su pregunta me indicó la dirección correcta, miré el código del menú contextual y lo modifiqué de la siguiente manera, lo que resolvió mi problema:

 jQuery(this).mousedown( function(e) { var evt = e; if (e.button == 2) //Added to make this compatible with draggable evt.stopPropagation(); jQuery(this).mouseup( function(e) { if (e.button == 2) //Added to make this compatible with draggable e.stopPropagation(); var srcElement = jQuery(this); 

Agregar el cheque para e.button == 2 detiene la propagación del evento del clic derecho, y ahora mis divs arrastrables siguen siendo arrastrables, y el menú contextual aún funciona. Hasta ahora solo he probado esto en IE8, y no sé si resolverá su problema, pero me interesa saber si lo hace.

== EDIT ==

Por sugerencia de Carl R para compatibilidad con Chrome:

 jQuery(this).mousedown( function(e) { var evt = e; if (e.button != 2) return; //Added to make this compatible with draggable evt.stopPropagation(); jQuery(this).mouseup( function(e) { e.stopPropagation(); var srcElement = jQuery(this); 

He cambiado el modo como sugirió, y está funcionando bien en IE8 de esta manera.

Tuve el mismo problema y simplemente comenté los dos primeros * .stopPropagation () de jquery.contextMenu.js. Todo está funcionando correctamente ahora.

El único uso posible de estas paradas en este caso puede ser para un rendimiento mínimo. De hecho, reemplazar estos con * .preventDefault () tendría más sentido para mí. ¿Me estoy perdiendo de algo?