Billet du blogue

jQuery.alt et jQuery.iif

Voici un micro-plugin pour jQuery qui me sauve un temps fou :

jQuery.fn.extend({
    'alt' : function(bool, fn_true, fn_false) {
        (bool) ? fn_true() : fn_false();
        return this;
    },
    'iif' : function(bool) {
        return (bool) ? this : jQuery('');
    }
});

En gros, cela évite d’avoir à écrire une structure de if et else. Voici comment l’utiliser :

$('body ul li').alt(
    $.browser.msie,
    function() {
        $(this).css('border', '10px solid red');
    },
    function() {
        $(this).css('border', '1px solid blue');
    }
);

Si le premier argument est d’une valeur booléenne égale à true, la fonction passée en deuxième argument est exécutée. Si la première valeur est égale à false, c’est le troisième argument qui est exécuté.

Pour ce qui est de $.iif, voici comment je l’utilise — en comparaison à comment je procèderais habituellement :

// Syntaxe originale
if ($.browser.msie) {
    $('body ul li').css('border', '10px solid red');
}

// En utilisant $.iif
$('body ul li').iif($.browser.msie).css('border', '10px solid red');

Si l’argument est égal à true, la chaine est continuée. Sinon, $.iif retourne un objet jQuery vide et donc les méthodes suivantes sont ignorées.

Voilà! Oh, et vous pouvez utiliser ce code comme bon vous semble!

P.S. : En passant, si vous vous demandez pourquoi la méthode ne s’appelle pas $.if au lieu de $.iif, c’est parce que if est un mot réservé en Javascript (en ECMAScript, en fait).

Posté le avec les tags: et .

Commentaires fermés

Les commentaires pour ce billet ont été désactivés un mois après la date de publication de ce-dernier. Vous désirez exprimer votre opinion sur ce billet malgré le fait que les commentaires aient été désactivés ? Utilisez le formulaire de contact.


Fil atom des commentaires de ce billet1 commentaire