HTML5 DragOver регулирование - PullRequest
       4

HTML5 DragOver регулирование

0 голосов
/ 05 сентября 2018

У меня один вопрос: если я активирую функцию перетаскивания, почему постоянно мигает стоп-сигнал, кроме таймаутов дросселирования?

Как правильно дросселировать тягу? Я сделал простую демонстрацию этого (хром 68.0.3440.106)

http://jsfiddle.net/2bco65j8/

$(document).on("dragover", ".nest-source.throttle", $.throttle( 100, 
    true,function(e) {
    console.log("throttling");
    e.preventDefault();
}))


$(document).on("dragover", ".nest-source.nothrottle", function(e) {
    console.log("wo throttling");
    e.preventDefault();
})

1 Ответ

0 голосов
/ 05 сентября 2018

Чтобы разрешить удаление элемента, вам нужно вызвать warnDefault для события. События будут запускаться независимо от регулирования, и если вы не вызовете метод warnDefault, будет показан значок блока перетаскивания. То, что делает $ .throttle, - это создание новой функции, которая проверяет, сколько времени прошло с момента последнего выполнения вашего обратного вызова, и запускает ваш обратный вызов только по истечении указанной продолжительности. Следовательно, вы разрешаете сброс только один раз каждые 100 мс, и поэтому значок мигает.

Вы облако делаете что-то вроде

const throttledDragOver = (duration, callback) => {
    var throttledCallback = $.throttle(duration, true, () => callback());
    return e => {
    e.preventDefault();    
    throttledCallback();
  }
}

Вы можете увидеть это в действии здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...