J'utilise un marteau pour faire glisser et cela devient saccadé lors du chargement d'autres choses, comme ce message d'avertissement me le dit.
La gestion de l'événement d'entrée «touchstart» a été retardée de X ms car le thread principal est occupé. Pensez à marquer le gestionnaire d'événements comme «passif» pour rendre la page plus réactive.
J'ai donc essayé d'ajouter "passif" à l'auditeur comme ça
Hammer(element[0]).on("touchstart", function(ev) {
// stuff
}, {
passive: true
});
mais je reçois toujours cet avertissement.
preventDefault()
- Est-il possible de supprimer cet avertissement?Cela masque le message d'avertissement:
la source
preventDefault()
, vous devez spécifierpassive: false
. Sinon, précisezpassive: true
. Vous obtenez uniquement l'avertissement si vous ne spécifiez pas non plus. Si vous spécifiezpassive: true
et êtespreventDefault()
appelé, cela entraîne une erreur et la valeur par défaut n'est pas empêchée. Spécifierpassive
n'est pas un hack ici. C'est la solution . C'est ce que l'avertissement demande!Rencontrez également cela dans le plugin dropdown select2 de Laravel. Changer la valeur comme suggéré par Alfred Wallace de
à
résout le problème. Pourquoi il a un vote négatif, je ne sais pas mais ça marche pour moi.
la source
Pour ceux qui sont coincés avec des problèmes hérités, recherchez la ligne qui renvoie l'erreur et ajoutez
{passive: true}
- par exemple:devient
la source
Pour jquery-ui-dragable avec jquery-ui-touch-punch, je l'ai corrigé comme pour Iván Rodríguez, mais avec un autre événement prioritaire pour touchmove:
la source
J'ai trouvé une solution qui fonctionne sur jQuery 3.4.1 slim
Après avoir réduit la taille, ajoutez
{passive: true}
à la fonction addEventListener sur la ligne 1567 comme suit :t.addEventListener(p, a, {passive: true}))
Rien ne casse et les audits des phares ne se plaignent pas des auditeurs.
la source