Estoy usando un martillo para arrastrar y se está entrecortando al cargar otras cosas, como me dice este mensaje de advertencia.
El manejo del evento de entrada 'touchstart' se retrasó por X ms debido a que el subproceso principal está ocupado. Considere marcar el controlador de eventos como 'pasivo' para que la página sea más receptiva.
Así que intenté agregar 'pasivo' al oyente así
Hammer(element[0]).on("touchstart", function(ev) {
// stuff
}, {
passive: true
});
pero sigo recibiendo esta advertencia.
preventDefault()
. ¿Es posible suprimir esta advertencia?Esto oculta el mensaje de advertencia:
fuente
preventDefault()
, debe especificarpassive: false
. Si no, especifiquepassive: true
. Solo obtienes la advertencia si no especificas tampoco. Si especificapassive: true
ypreventDefault()
recibe una llamada, se produce un error y no se evita el valor predeterminado. Especificarpassive
no es un truco aquí. Es la solucion . ¡Es lo que pide la advertencia!También encuentre esto en el complemento desplegable select2 en Laravel. Cambiar el valor sugerido por Alfred Wallace de
a
resuelve el problema No sé por qué tiene un voto negativo, pero me funciona.
fuente
Para aquellos atrapados en problemas heredados, busque la línea que arroja el error y agregue
{passive: true}
, por ejemplo:se convierte
fuente
Para jquery-ui-dragable con jquery-ui-touch-punch lo arreglé de manera similar a Iván Rodríguez, pero con una anulación de evento más para touchmove:
fuente
Encontré una solución que funciona en jQuery 3.4.1 slim
Después de desminificar, agregue
{passive: true}
a la función addEventListener en la línea 1567 de la siguiente manera:t.addEventListener(p, a, {passive: true}))
Nada se rompe y las auditorías de los faros no se quejan de los oyentes.
fuente