Я знаю, как сделать плагины, но как делают я делаю вложенные опции как:
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, и т.д. я хотел бы его инструмент для очистки и более опрятный как пример выше.
Ваш плагин принимает один параметр 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}});
На самом деле это правильно. Ваша нотация известна как 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})