Как я делаю вложенные опции для плагинов в jQuery

Я знаю, как сделать плагины, но как делают я делаю вложенные опции как:

var defaults = {
    spacing:10,
    shorten_to:50,
    from_start:0,
    from_end:2,
    classes: {
        test:'testing'
    }
};

я знаю, что это не правильно, я просто не знаю, как записать правильный синтаксис, когда я хочу сделать что-то вроде этого:

$('#breadcrumbs').breadcrumbs({classes{test:'new_example'},spacing:12})

другие предложения приветствуются, я нуждаюсь в способности к пользовательским именам классов и существует 7, так вместо того, чтобы делать что-то как test_class, example_class, и т.д. я хотел бы его инструмент для очистки и более опрятный как пример выше.

5
задан Oscar Godson 12 April 2010 в 22:10
поделиться

2 ответа

Ваш плагин принимает один параметр options, а люди передают параметры в плагин, используя литерал объекта. Затем вы используете $.extend для объединения параметров с параметрами по умолчанию. Вот образец плагина, который вы можете скопировать.

//Create closure
(function($) {

    var defaults = { //Default settings for breadcrumbs
        async: false,
        race: 100,
        interval: 1,
        classes: {
            test:'testing'
        }
    };

    //Plugin definition
    $.extend({

        //Execute the functions added to the stack
        breadcrumbs: function(options) {

            options = $.extend(true, defaults, options);

            //Loop through each item in the matched set and apply event handlers
            return this.each(function(i) {

                //Code here , this = current selection
            });
        }
    });

// end of closure and execute
})(jQuery);

Вы бы назвали этот плагин так

$('div').breadcrumbs({async:true, interval:2, classes: {another: true}});
2
ответ дан 14 December 2019 в 19:07
поделиться

На самом деле это правильно. Ваша нотация известна как JSON, и это чрезвычайно простая нотация (см. json.org)

var someobject = { prop: 'prop' };
var anotherobject = { name: 'name' };
someobject.someproperty = anotherobject;

Эквивалентна

var someobject = { prop: 'prop', { name: 'name' }};

В вашем втором примере просто не хватает двоеточия.

$('#breadcrumbs').breadcrumbs({classes:{test:'new_example'},spacing:12})
3
ответ дан 14 December 2019 в 19:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: