Разработка плагина Drag and Drop - PullRequest
0 голосов
/ 29 декабря 2011

Я начинаю становиться создателем плагинов и не совсем понимаю. Одна проблема, я хотел бы сделать по умолчанию, где у вас есть два числа. И мне нужно иметь возможность применить их к коду.

Что я имею в виду, как это:

var defaults = {
numbers: [1, 2]
}

Мне нравится, как команда jquery сделала это с помощью draggable:

$('#drag').draggable({
grid: [1, 100]
});

Что бы я хотел сделать. Любая идея, как?

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Один хороший способ сделать это - использовать $.extend, который объединяет содержимое двух или более объектов в первый объект:

(function($) {
    $.fn.foobar = function(options) {
        var settings = {
            numbers: [1, 2]
        };
        $.extend(settings, options);

        /* continue with plugin code. */           

        alert(settings.numbers[0] + " " + settings.numbers[1]);
    };
})(jQuery);

Теперь settingsявляется комбинацией указанных пользователем параметров и параметров «по умолчанию».См. этот раздел руководства по созданию плагинов для получения дополнительной информации.

Пример: http://jsfiddle.net/2Djya/

PS: AХорошим ресурсом для выяснения работы плагинов является сам источник jQueryUI .

0 голосов
/ 29 декабря 2011

упрощенный код плагина:

$.fn.yourPlugin = function( conf ){
    var config = $.extend({
        someVar : 'default'
        ,   foo : 'anotherDefault'
    }, conf );

    return this.each( function(){
        // do stuff with $( this ) and config
    } );
};

$.extend скопирует любые параметры из conf, которые передаются в созданный вами объект, который устанавливает значения по умолчанию.

...