Я использую молоток для перетаскивания, и он загружается другими вещами, как это предупреждающее сообщение говорит мне.
Обработка события ввода «touchstart» была отложена на X мс из-за того, что основной поток занят. Пометьте обработчик событий как пассивный, чтобы сделать страницу более отзывчивой.
Поэтому я попытался добавить «пассивный» слушателю так
Hammer(element[0]).on("touchstart", function(ev) {
// stuff
}, {
passive: true
});
но я все еще получаю это предупреждение.
preventDefault()
- возможно ли подавить это предупреждение?Это скрывает предупреждение:
источник
preventDefault()
, вы должны указатьpassive: false
. Если нет, уточнитеpassive: true
. Вы получите предупреждение, только если не укажете. Если вы укажетеpassive: true
иpreventDefault()
вызовете его, это приведет к ошибке и по умолчанию не будет предотвращено. Указаниеpassive
здесь не является взломом. Это решение . Это то, что просит предупреждение!Также столкнитесь с этим в выпадающем плагине select2 в Laravel. Изменение значения в соответствии с предложением Альфреда Уоллеса из
в
решает проблему. Почему у него отрицательный голос, я не знаю, но у меня это работает.
источник
Для тех, кто застрял с унаследованными проблемами, найдите строку с ошибкой и добавьте,
{passive: true}
например:становится
источник
Для jquery-ui-dragable с помощью jquery-ui-touch-punch я исправил его аналогично Iván Rodríguez, но с еще одним переопределением событий для touchmove:
источник
Я нашел решение, которое работает на JQuery 3.4.1 Slim
После отмены минимизации добавьте
{passive: true}
функцию addEventListener в строку 1567 следующим образом:t.addEventListener(p, a, {passive: true}))
Ничто не ломается, и проверки маяков не жалуются на слушателей.
источник