2 votes

Comment créer un plugin jQuery qui accepte les options et les paramètres d'action comme le fait le dialogue jQuery UI

J'essaie d'écrire mon propre plugin de dialogue et je veux qu'il reflète la façon dont le dialogue jQuery UI accepte ses paramètres.

Par exemple, la boîte de dialogue jQuery UI prend des options dans son constructeur et peut être appelée pour ouvrir la boîte de dialogue par la suite sans conserver une référence à l'élément de dialogue dans une variable.

J'ai lu les sources sur GitHub mais je ne comprends pas comment ils y parviennent.

La méthode jQuery

<a onclick="$('#dialog').dialog('open');">test</a>

$( function() {
    // No reference kept
    $('#dialog').dialog({left: 100, top: 10});
});

Mon plugin

(function ($) {

    $.fn.modal = function (options) {

        var defaults = { top: 100, overlay: 0.5, closeButton: '.closeDialog' };
        options = $.extend(defaults, options);

        if(options == "open"){
            // open
        }
        if(options == "close"){
            // close
        }
    };
}

1voto

Racil Hilan Points 6498

La différence entre les actions et les options est assez simple.

Les actions sont des chaînes de caractères :

$('#dialog').dialog('open');

Alors que les options sont des propriétés d'un objet :

$('#dialog').dialog({left: 100, top: 10});

Une simple vérification du type du paramètre fourni fera donc l'affaire. Voici comment jQuery s'y prend :

var isMethodCall = typeof options === "string";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X