Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jqury plugin (https://javascript.ru/forum/jquery/41025-jqury-plugin.html)

fish9370 28.08.2013 18:40

jqury plugin
 
добрый день,
я разрабатываю плагин для 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

Цитата:

Сообщение от fish9370
$.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, и это вправду заработало.

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


Часовой пояс GMT +3, время: 01:54.