0
votes

Désactiver un événement de Mousemove après rafraîchissement d'une page Web ne fonctionne pas

J'utilise une jQuery Mousemove CODE> Evénement pour suivre les activités de la souris.

À des fins de test, j'appelle startActivityTracker () code> dans la console de développeur. Lorsque la souris est déplacée, OnActivity () code> est appelé. Ensuite, j'exécute startastacitytracker () code> et OnActivity () code> n'est plus appelé. Tout cela fonctionne jusqu'à présent. P>

Mais lorsque le site Web est actualisé (par exemple, F5 kbd>) après appel startActivityTracker () code>, startasticitenittracker () n'a aucun effet. En d'autres termes, Onactivity () code> est toujours appelé. Y a-t-il une référence perdue lorsque vous rafraîchissez la page? P>

function onActivity() {
    console.log('onActivity: ' + Math.random()) ;    
}

function startActivityTracker() {
    $(document).ready(function () {
        console.log('Tracker started.');
        $(document).mousemove(onActivity);        
    });
}

function stopActivityTracker() {
    console.log('Tracker stopped.');
    $(document).off('mousemove', onActivity);
}


1 commentaires

Je n'ai pas pu reproduire ce problème. Je n'ai aucun problème du tout. J'appelle starttactivityTracker sur un bouton Cliquez et déplacez la souris, je peux voir la console console.logs - Si je rafraîchis la page - Je ne vois pas le journal de contrôle à nouveau. Jusqu'à ce que j'appelle starttactivityTracker ? Êtes-vous capable de clarifier plus s'il vous plaît


3 Réponses :


0
votes

essayer de changer la fonction forte>

function stopActivityTracker() {
    console.log('Tracker stopped.');
    $(document).off('mousemove');
}


3 commentaires

Merci, je vais essayer cela. Cela ne désactivera-t-il aucun (autre) événement de Mousemove (s'il y en a d'autres) et non seulement celui qui a été démarré dans StartActivityTracker ()?


Le code ci-dessus supprimera chaque événement de souris, utilisez Unbind pour supprimer un événement spécifique. Comme ceci: $ (document) .unbind ('Mousemove', Onactivité);


OFF () est le même que d'engouement (). Mais à partir de JQuery 3.0, .unbind () a été obsolète. Il a été remplacé par la méthode .Off () depuis JQuery 1.7, son utilisation était donc déjà découragée.



0
votes

Dans votre StartActivityTracker Strong> Vous exécutez:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


0 commentaires

0
votes

https://jsfiddle.net/pxhs9qer/

JS: < Pré> xxx

envelopper votre script entière en $ (document) .Readady () et utilisez sur avec off


0 commentaires