Проверьте, помогает ли привязка события только к mouseup
:
$(document.body).bind("mouseup", function(e) {
if ((window.getSelection().toString() != "") && (!ContextMenu.shown)) {
ContextMenu.show(e);
}
});
Из того, что я понимаю, вам не нужно связывать это с событием mousedown
.
Я думаю, если вы связываете его с событием mousedown
и пользователь делает выбор, перетаскивая мышь (и нажимая кнопку), отображается ваше контекстное меню (mousedown
) и click
обработчик привязан к документу, пока кнопка мыши еще нажата . Таким образом, после отпускания кнопки мыши (после завершения выбора), a click
выполняется , а ранее связанный обработчик click
выполняется , в результате чего меню снова исчезает.
Хотя я могу ошибаться;)