Показать сообщение отдельно
  #1 (permalink)  
Старый 30.07.2013, 12:53
Аспирант
Отправить личное сообщение для xmlns Посмотреть профиль Найти все сообщения от xmlns
 
Регистрация: 30.07.2013
Сообщений: 47

Написание плагина jQuery
Добрый день.
Нужна помощь в написании плагина. Посмотрел интернет на эту тему - на всех сайтах одна и та же статья, слизанная друг у друга.
Проблема в том, что не получается передать в плагин ни опции, ни название метода, который хочу использовать. Внутри их просто не видно.
Вот кусок кода (взят из статьи - но, раз не работает, значит написали брехню):
jQuery.fn.formValidation = function(options)
    {
        var settings =
        {
            fields: {
                name: "name",
                surname: "surname",
                middlename: "middlename",
                phoneNumber: "phoneNumber",
                zipCode: "zipCode",
                city: "city",
                address: "address",
                email: "email",
                password1: "password1",
                password2: "password2"
            },
            other: [], //[name, regExp, текст, положение tooltip]
            tooltipPosition: "right"
        };
...//всякие приватные функции...
var methods = {
            init: function(options)
            {
                alert(options); //выдает 0
                settings = jQuery.extend({}, settings, options);
                //тут идет код
            },
            validate: function()
            {
                alert(22222222222);
            },
            isEmpty: function()
            {
                alert(111111111111);
            }
        };
var make = function(method)
        {
            alert(method);
            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 {
                $.error('Метод с именем ' +  method + ' не существует для jQuery.formValidation');
            }
        };
        return this.each(make);
    };
})(jQuery);
У меня стоит, как видно alert(method), чтобы посмотреть, что передано. Так вот он всегда пишет цифру 0 - даже если в аргументе стоит какая строка с названием. В общем, как нужно написать, чтобы заработало?
Ответить с цитированием