Maison >interface Web >js tutoriel >jquery une implémentation de la méthode de fonction

jquery une implémentation de la méthode de fonction

巴扎黑
巴扎黑original
2017-06-25 11:13:041893parcourir

Il existe une méthode dans

jquery : one, qui est utilisée pour dissocier automatiquement l' événement seulement après son exécution une fois. J'ai eu le vertige après avoir longuement regardé le code source, alors j'ai décidé d'en créer un moi-même. Après l'avoir longuement étudié, je l'ai simulé une fois en utilisant natif. Le nom que j'ai utilisé était autrefois.

La méthode originale est comme ceci :

function once(dom, event, callback) {
    // 这一步是为了避免修改形参
    var temp = callback;
    dom.addEventListener(event, function() {
        if(temp)
            temp();
        temp = null;
    })
}


Cette méthode est possible, mais il y a un problème, Traitement des événementsFonctionIl existe toujours, il n'exécute tout simplement rien et deviendra très volumineux avec le temps.

L'alternative est de se débloquer dans la fonction de gestionnaire, mais si vous utilisez la fonction anonyme, vous tomberez dans une terrible récursion infinie.

L'utilisation du stockage variable peut résoudre le problème.

function once(dom, event, callback) {
    var handle = function() {
        callback();
        dom.removeEventListener(event, handle);
    }
    dom.addEventListener(event, handle)
}

C'est un divertissement de loisir, j'espère qu'il pourra aider certaines personnes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn