Вход

Просмотр полной версии : jqury plugin


fish9370
28.08.2013, 18:40
добрый день,
я разрабатываю плагин для jQuery и столкнулся с проблемой

(function($) {
var opt;

var methods = {
init: function(options) {
opt = $.extend({
uid: 0
},
options
);
},
show: function() {
alert('show');
},
hide: function() {
},
update: function(content) {
}
};


// jQuery plugin
$.monitor = function(method) {
var $this = $(this);

if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
/* method undefined */;
}
};
})(jQuery);

вызов:
$.monitor('start');

этот код завешивает намертво страницу

что не так?

рони
29.08.2013, 01:17
$.fn.monitor = function(method)
да и вызов для проверки лучше хотябы с минимальным обьектом проверять
$({}).monitor('start');

fish9370
29.08.2013, 10:57
рони, спасибо за ответ, но так было и задумано,
мне нужен плагин без привязки к DOM (возможно это не называется плагин, поправьте если что)

я хочу плагин, с множеством методов, типа
$.monitor('init', options);
$.monitor('update');
$.monitor('chat', text);

еще раз повторюсь, он должен быть глобальным, и не привязан к какому-то элементу DOM

на самом деле, мне уже помогли на форуме jQuery, мне посоветовали заменить opt на объект и заменить this на opt, и это вправду заработало.

но если есть более правильный паттерн, пожалуйста покажите его