Перетаскивание курсора Jquery и отпускание внешнего ввода, определяемого как щелчок - PullRequest
0 голосов
/ 09 апреля 2019

Привет, есть ли способ запретить jquery обнаруживать событие щелчка при перетаскивании и отпускании за пределами поля ввода? Дело в том, что у меня есть модальное окно, которое закрывается, когда вы щелкаете за пределами окна (фон). Когда у вас есть поле ввода в модальном окне, вы выбираете текст внутри ввода и перетаскиваете мышь полностью из области модального окна, затем отпускаете щелчок, модальное окно закрывается, так как оно обнаруживает событие щелчка по этому элементу. когда это было на самом деле не событие щелчка, а событие «релиз».

Вот пример https://jsfiddle.net/imurphy/tafwzero/1/

Нажмите код события:

$('.how').on('click',function(e){
    e.preventDefault();

  if(!$(e.target).is('.how')){
                return;
            }
    alert('Modal Closed');
});

Спасибо

1 Ответ

0 голосов
/ 09 апреля 2019

Проверьте ниже код. Вам нужно использовать mousedown и mouseup обрабатывать перетаскивание

var isDragging = false;
    $(".how")
    .mousedown(function() {
        $(window).mousemove(function() {
            isDragging = true;
            $(window).unbind("mousemove");
        });
    })
    .mouseup(function() {
        var wasDragging = isDragging;
        isDragging = false;
        $(window).unbind("mousemove");
        if (!wasDragging) {
            $(this).selection();
        }
    });


    $('.how').on('click',function(e){
    e.preventDefault();

  if(!$(e.target).is('.how')){
                return;
            }
    alert('Modal Closed');
});
...