Амброзия указывает на проблему, о которой вы спрашивали, поскольку ваш звонок был неверным. Ваш .ready()
не содержит функцию.
Однако, возможно, вы захотите настроить плагин немного иначе. Прямо сейчас никто не может переопределить ваши значения по умолчанию в глобальном масштабе, и использование вами .extend скрывает то, что вы пытаетесь сделать. Вот как я бы порекомендовал настроить ваш плагин, но, конечно, все делают это по-своему:
;(function($) {
$.fn.myPlugin = function(options) {
return this.each(function() {
(new $.MyPlugin(this, options));
});
};
$.MyPlugin = function(element, options) {
this.options = $.extend({}, $.MyPlugin.defaults, options);
this.setup = function(){
console.log(this.helloText);
};
this.setup();
};
$.MyPlugin.defaults = {
helloText: "hello World"
};
})(jQuery);
Помимо упрощения отслеживания, теперь кто-то может переопределить ваши параметры для всех вызовов к плагину с помощью:
$.MyPlugin.defaults.helloText = "Something Else";
$('ul').myplugin(); // Outputs 'Something Else' to the console
Я написал помощника для плагинов jQuery под названием Starter для jQuery , но существует множество других замечательных ресурсов.