Maison >interface Web >js tutoriel >Comment basculer entre les fonctions en cliquant sur jQuery ?

Comment basculer entre les fonctions en cliquant sur jQuery ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-09 08:38:02563parcourir

How to Switch Between Functions on Click Using jQuery?

Basculer entre les fonctions lors d'un clic avec jQuery

Dans jQuery, la tâche d'alterner entre les fonctions lorsqu'un élément est cliqué peut être accomplie avec différents approches.

JQuery intégré .toggle()

jQuery fournit deux versions de la méthode .toggle(). Celui mentionné dans la question, qui est utilisé pour basculer la visibilité, est désormais obsolète. Cependant, il existe une version alternative conçue spécifiquement pour basculer entre les fonctions en cas de clic.

$(selector).toggle(function1, function2);

Cette méthode accepte deux fonctions comme arguments et alterne entre elles à chaque clic.

Plugin personnalisé

Comme alternative, il est possible de créer un plugin personnalisé qui offre une implémentation plus polyvalente. Ce plugin, appelé "clickToggle", permet d'attribuer plusieurs fonctions et peut être utilisé pour n'importe quel événement.

$.fn.clickToggle = function(func1, func2, ...) {
    var funcs = [func1, func2, ...];
    this.data('toggleclicked', 0);
    this.click(function() {
        var data = $(this).data();
        var tc = data.toggleclicked;
        $.proxy(funcs[tc], this)();
        data.toggleclicked = (tc + 1) % funcs.length;
    });
    return this;
};

Pour utiliser ce plugin, spécifiez les fonctions en arguments :

$('#element').clickToggle(function1, function2);

Mise en œuvre améliorée

Le code fourni peut être encore optimisé pour une meilleure performances :

$(function() {
    var clickCallbacks = [function1, function2];
    $('#element').click(function() {
        clickCallbacks[$(this).data('toggleclicked')++]();
    });
});

Cette approche réduit considérablement le nombre d'appels de fonction en attribuant le gestionnaire de clics une seule fois, ce qui entraîne des temps d'exécution plus rapides.

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