Событие щелчка срабатывает, когда я перетаскиваю в Chrome - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть диалоговое окно, представленное div, и я хочу закрыть его, когда я нажимаю где-то вне этого div.

Я использую этот код JQuery:

$(document).bind('click', function(e) {
  var clicked = $(e.target);
  if (!clicked.parents().hasClass("dialog-wrapper")) {
    $('.dialog-wrapper').hide(500);
  }
});

Рабочий примерздесь:

https://jsfiddle.net/ho2p3fnc/

Когда я нажимаю за пределами div, все работает ОК.Когда я нажимаю внутри div, он работает хорошо.

Но когда я перетаскиваю изнутри div наружу и отпускаю кнопку мыши снаружи, это вызывает событие click снаружи в Chrome

Как я могу предотвратить это?поведение в хроме?

1 Ответ

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

Я бы сделал это, используя 2 события.Одна проверка, откуда приходит клик, а другая - срабатывание в конце клика.Как то так:

var fromDialog = true;

document.addEventListener('mousedown', function(e) {
    var clicked = $(e.target);
    fromDialog = clicked.parents().hasClass("dialog-wrapper");
});

document.addEventListener('mouseup', function(e) {
    if(!fromDialog) {
       $('.dialog-wrapper').hide(500);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...