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 et modifié le 30 avril 2008 à 9:04 avec les tags: et .

Nouveau commentaire

Connectez-vous avec un identifiant OpenID.

Utilisez la syntaxe Markdown pour formatter votre commentaire.

Veuillez aussi prendre note que les commentaires jugés sans intérêt, diffamatoires ou non-professionnels par l'auteur du blogue seront supprimés immédiatement. Essayez de rester professionel.

Et si voulez qu'on vous identifie, pas la peine d'écrire votre URL personnel dans votre commentaire — vous n'avez qu'à l'utiliser comme OpenID.


Fil atom des commentaires de ce billet1 commentaire

Vous désirez exprimer votre opinion ? Accédez au formulaire d'ajout de commentaire