Maison interface Web js tutoriel Implémentation et utilisation de base de jQuery Callback

Implémentation et utilisation de base de jQuery Callback

Jun 16, 2017 pm 02:32 PM
jquery 使用方法 基本 实现

Dans le développement js, comme il n'y a pas de multi-threading, on rencontre souvent la notion de callback Par exemple, enregistrer une fonction de rappel dans la fonction ready, enregistrer le traitement événementiel des éléments, etc. Dans des scénarios plus complexes, lorsqu'un événement se produit, plusieurs méthodes de rappel peuvent devoir être exécutées en même temps. L'implémentation qui peut être directement envisagée consiste à implémenter une file d'attente et à ajouter toutes les fonctions nécessitant des rappels lorsque l'événement est déclenché dans cette file d'attente. pour le stockage Lorsque l'événement est déclenché, les fonctions enregistrées sont séquentiellement récupérées de cette file d'attente et exécutées.

Aperçu

Abréviation de $(document).ready().

permet de lier une fonction à exécuter après le chargement du document DOM. Cette fonction fonctionne de la même manière que $(document).ready(), sauf que lorsque vous utilisez cette fonction, vous devez envelopper tous les opérateurs $() dans la page qui doivent être exécutés lorsque le DOM est chargé. Techniquement, cette fonction peut être chaînée – mais peu de cas sont réellement liés de cette manière. Vous pouvez utiliser n'importe quel nombre d'événements $(document).ready sur une page. Voir ready(Function) pour plus d’informations sur l’événement ready.

Paramètres

callbackFunctionV1.0

La fonction à exécuter lors du chargement du DOM

peut être implémentée simplement comme suit .

Tout d’abord, implémentez une fonction de classe pour représenter cette classe de rappel. En javascript, utilisez un tableau pour représenter cette file d'attente.

function Callbacks() {    this.list = [];
}
Copier après la connexion

Ensuite, implémentez les méthodes dans la classe à travers le prototype. Les fonctions ajoutées et supprimées sont stockées dans le tableau. Lors du déclenchement, vous pouvez fournir des paramètres qui seront transmis à chaque fonction de rappel.

Callbacks.prototype = {
    add: function(fn) {
        this.list.push(fn);
    },
    remove: function(fn){
        var position = this.list.indexOf(fn);
        if( position >=0){
            this.list.splice(position, 1);
        }
    },
    fire: function(args){
        for(var i=0; i<this.list.length; i++){
            var fn = this.list[i];
            fn(args);
        }
    }
};
Copier après la connexion

Le code de test est le suivant :

function fn1(args){
    console.log("fn1: " + args);
}
function fn2(args){
    console.log("fn2: " + args);
}
var callbacks = new Callbacks();
callbacks.add(fn1);
callbacks.fire("Alice");
callbacks.add(fn2);
callbacks.fire("Tom");
callbacks.remove(fn1);
callbacks.fire("Grace");
Copier après la connexion

Ou, n'utilisez pas de prototypes et implémentez-les directement via des fermetures.

function Callbacks() {
    
    var list = [];
    
    return {
         add: function(fn) {
            list.push(fn);
        },
        
        remove: function(fn){
            var position = list.indexOf(fn);
            if( position >=0){
                list.splice(position, 1);
            }
        },
        
        fire: function(args) {
            for(var i=0; i<list.length; i++){
                var fn = list[i];
                fn(args);
            }    
        }
    };
}
Copier après la connexion

Dans ce cas, l'exemple de code doit également être ajusté. Nous pouvons simplement utiliser directement la fonction Callbacks.

function fn1(args){
    console.log("fn1: " + args);
}
function fn2(args){
    console.log("fn2: " + args);
}
var callbacks = Callbacks();
callbacks.add(fn1);
callbacks.fire("Alice");
callbacks.add(fn2);
callbacks.fire("Tom");
callbacks.remove(fn1);
callbacks.fire("Grace");
Copier après la connexion

Continuons avec la deuxième méthode.

Pour les scénarios plus complexes, nous ne devons tirer qu'une seule fois. Même si le feu est appelé dans le futur, il ne prendra plus effet.

Par exemple, cela peut devenir comme ça lors de la création d'un objet. L'utilisation d'une fois ici signifie qu'il ne peut tirer qu'une seule fois.

var callbacks = Callbacks("once");

Ensuite, notre code doit également être ajusté. En fait, c'est très simple. Si une fois est défini, alors après le tir, tuez simplement la file d'attente d'origine directement.

function Callbacks(options) {
    var once = options === "once";
    var list = [];
    
    return {
         add: function(fn) {
            if(list){
                list.push(fn);
            }
        },
        
        remove: function(fn){
            if(list){
                var position = list.indexOf(fn);
                if( position >=0){
                    list.splice(position, 1);
                }
            }
        },
        
        fire: function(args) {
            if(list)
            {
                for(var i=0; i<list.length; i++){
                    var fn = list[i];
                    fn(args);
                }
            }
            if( once ){
                list = undefined;
            }
        }
    };
}
Copier après la connexion

Dans jQuery, non seulement une fois est fournie, mais quatre types de méthodes différents sont fournis :

une fois : ne peut être déclenché qu'une seule fois.

mémoire : Lorsque la file d'attente aura été déclenchée, la fonction ajoutée sera appelée directement sans se déclencher à nouveau.

unique : unicité de la fonction garantie

stopOnFalse : Tant qu'un rappel renvoie false, les appels suivants seront interrompus.

Ces quatre méthodes peuvent être combinées, utilisez simplement des espaces pour les séparer dans le constructeur, comme $.Callbacks("once memory unique");

La documentation officielle fournit quelques méthodes d'utilisation Exemple .

callbacks.add(fn1, [fn2, fn3,...])//Ajouter un/plusieurs rappels
callbacks.remove(fn1, [fn2, fn3,...])/ / Supprimez un/plusieurs rappels
callbacks.fire(args)//Rappel de déclenchement, transmettez les arguments à fn1/fn2/fn3...
callbacks.fireWith(context, args)//Spécifiez le contexte contextuel, puis déclenchez le rappel
callbacks.lock()//Verrouillez l'état de déclenchement actuel de la file d'attente
callbacks.disable()//Désactivez le gestionnaire, c'est-à-dire que tous les incendies ne prendront pas effet

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser l'outil de réparation DirectX ? Utilisation détaillée de l'outil de réparation DirectX Comment utiliser l'outil de réparation DirectX ? Utilisation détaillée de l'outil de réparation DirectX Mar 15, 2024 am 08:31 AM

L'outil de réparation DirectX est un outil système professionnel. Sa fonction principale est de détecter l'état DirectX du système actuel. Si une anomalie est détectée, elle peut être réparée directement. De nombreux utilisateurs ne savent peut-être pas comment utiliser l'outil de réparation DirectX. Jetons un coup d'œil au didacticiel détaillé ci-dessous. 1. Utilisez le logiciel de l'outil de réparation pour effectuer la détection des réparations. 2. S'il y a un problème anormal dans le composant C++ une fois la réparation terminée, cliquez sur le bouton Annuler, puis sur la barre de menu Outils. 3. Cliquez sur le bouton Options, sélectionnez l'extension, puis cliquez sur le bouton Démarrer l'extension. 4. Une fois l'extension terminée, détectez-la à nouveau et réparez-la. 5. Si le problème n'est toujours pas résolu une fois l'opération de l'outil de réparation terminée, vous pouvez essayer de désinstaller et de réinstaller le programme qui a signalé l'erreur.

Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Mar 24, 2024 am 11:27 AM

Comment mettre en œuvre la double connexion WeChat sur les téléphones mobiles Huawei ? Avec l’essor des réseaux sociaux, WeChat est devenu l’un des outils de communication indispensables dans la vie quotidienne des gens. Cependant, de nombreuses personnes peuvent rencontrer un problème : se connecter à plusieurs comptes WeChat en même temps sur le même téléphone mobile. Pour les utilisateurs de téléphones mobiles Huawei, il n'est pas difficile d'obtenir une double connexion WeChat. Cet article explique comment obtenir une double connexion WeChat sur les téléphones mobiles Huawei. Tout d'abord, le système EMUI fourni avec les téléphones mobiles Huawei offre une fonction très pratique : l'ouverture d'une double application. Grâce à la fonction de double ouverture de l'application, les utilisateurs peuvent simultanément

Comment utiliser Baidu Netdisk-Comment utiliser Baidu Netdisk Comment utiliser Baidu Netdisk-Comment utiliser Baidu Netdisk Mar 04, 2024 pm 09:28 PM

De nombreux amis ne savent toujours pas comment utiliser Baidu Netdisk, c'est pourquoi l'éditeur vous expliquera ci-dessous comment utiliser Baidu Netdisk. Si vous en avez besoin, dépêchez-vous et jetez un œil. Étape 1 : Connectez-vous directement après avoir installé Baidu Netdisk (comme indiqué sur l'image) ; Étape 2 : Sélectionnez ensuite « Mon partage » et « Liste de transfert » selon les invites de la page (comme indiqué sur l'image) ; Partage entre amis", vous pouvez partager des images et des fichiers directement avec des amis (comme indiqué sur l'image) ; Étape 4 : Sélectionnez ensuite "Partager", puis sélectionnez les fichiers de l'ordinateur ou les fichiers du disque réseau (comme indiqué sur l'image) ; Cinquième étape 1 : Ensuite, vous pouvez trouver des amis (comme indiqué sur l'image) ; Étape 6 : Vous pouvez également trouver les fonctions dont vous avez besoin dans la « Boîte au trésor des fonctions » (comme indiqué sur l'image). Ce qui précède est l’opinion de l’éditeur

Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Comment implémenter la fonction de clonage WeChat sur les téléphones mobiles Huawei Mar 24, 2024 pm 06:03 PM

Comment mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei Avec la popularité des logiciels sociaux et l'importance croissante accordée à la confidentialité et à la sécurité, la fonction de clonage WeChat est progressivement devenue le centre d'attention. La fonction de clonage WeChat peut aider les utilisateurs à se connecter simultanément à plusieurs comptes WeChat sur le même téléphone mobile, ce qui facilite la gestion et l'utilisation. Il n'est pas difficile de mettre en œuvre la fonction de clonage WeChat sur les téléphones mobiles Huawei. Il vous suffit de suivre les étapes suivantes. Étape 1 : Assurez-vous que la version du système de téléphonie mobile et la version de WeChat répondent aux exigences. Tout d'abord, assurez-vous que la version de votre système de téléphonie mobile Huawei a été mise à jour vers la dernière version, ainsi que l'application WeChat.

Qu'est-ce que l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Qu'est-ce que l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Comment utiliser l'outil d'activation KMS ? Mar 18, 2024 am 11:07 AM

L'outil d'activation KMS est un outil logiciel utilisé pour activer les produits Microsoft Windows et Office. KMS est l'abréviation de KeyManagementService, qui est un service de gestion de clés. L'outil d'activation KMS simule les fonctions du serveur KMS afin que l'ordinateur puisse se connecter au serveur KMS virtuel pour activer les produits Windows et Office. L'outil d'activation KMS est de petite taille et puissant en fonction. Il peut être activé en permanence en un seul clic. Il peut activer n'importe quelle version du système Windows et n'importe quelle version du logiciel Office sans être connecté à Internet. et outil d'activation Windows fréquemment mis à jour. Aujourd'hui, je vais le présenter. Permettez-moi de vous présenter le travail d'activation de kms.

Comment utiliser l'outil d'activation Xiaomi win7 - Comment utiliser l'outil d'activation Xiaomi win7 Comment utiliser l'outil d'activation Xiaomi win7 - Comment utiliser l'outil d'activation Xiaomi win7 Mar 04, 2024 pm 06:16 PM

Je pense que de nombreux utilisateurs utilisent l'outil d'activation Xiaomi win7, mais savez-vous comment utiliser l'outil d'activation Xiaomi win7. Ensuite, l'éditeur vous expliquera comment utiliser l'outil d'activation Xiaomi win7. Pour ceux qui sont intéressés par cela, veuillez venir à l'article suivant Voyons. La première étape consiste à accéder à « Poste de travail » après avoir réinstallé le système, à cliquer sur « Propriétés système » dans le menu supérieur et à vérifier l'état d'activation de Windows. Dans la deuxième étape, cliquez pour télécharger l'outil d'activation win7 en ligne et cliquez pour l'ouvrir (de nombreuses ressources sont disponibles partout). La troisième étape consiste à ouvrir l'outil d'activation Xiaomi et à cliquer sur "Activer Windows de manière permanente". La quatrième étape consiste à attendre que le processus d'activation termine l'activation. Étape 5 : Vérifiez à nouveau l'état d'activation de Windows et constatez que le système a été activé.

Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Guide de programmation PHP : méthodes pour implémenter la séquence de Fibonacci Mar 20, 2024 pm 04:54 PM

Le langage de programmation PHP est un outil puissant pour le développement Web, capable de prendre en charge une variété de logiques et d'algorithmes de programmation différents. Parmi eux, l’implémentation de la séquence de Fibonacci est un problème de programmation courant et classique. Dans cet article, nous présenterons comment utiliser le langage de programmation PHP pour implémenter la séquence de Fibonacci et joindrons des exemples de code spécifiques. La suite de Fibonacci est une suite mathématique définie comme suit : le premier et le deuxième élément de la suite valent 1, et à partir du troisième élément, la valeur de chaque élément est égale à la somme des deux éléments précédents. Les premiers éléments de la séquence

Découvrez comment Golang offre des possibilités de développement de jeux Découvrez comment Golang offre des possibilités de développement de jeux Mar 16, 2024 pm 12:57 PM

Dans le domaine actuel du développement logiciel, Golang (langage Go), en tant que langage de programmation efficace, concis et hautement simultané, est de plus en plus favorisé par les développeurs. Sa riche bibliothèque de normes et ses fonctionnalités de concurrence efficaces en font un choix de premier plan dans le domaine du développement de jeux. Cet article explorera comment utiliser Golang pour le développement de jeux et démontrera ses puissantes possibilités à travers des exemples de code spécifiques. 1. Avantages de Golang dans le développement de jeux. En tant que langage typé statiquement, Golang est utilisé dans la construction de systèmes de jeux à grande échelle.

See all articles