Тема: jQuery plugin
Показать сообщение отдельно
  #1 (permalink)  
Старый 29.09.2011, 04:06
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

jQuery plugin
Не могу понять как правильно создавать плагины. Нужно что-бы элемент мог перезаписывать данные и отдавать их. Делаю так :
var test_methods = {
    init : function() {
      return this.each(function() {
           this.aaa = 444444;
           this.bbb = 111111;
          
      });
    },
    get : function(name) {
        var val;
        this.each(function() {
            val = this[name];
        });
        return val;
    },
    set : function(name, value) {
         return this.each(function() {   
             this[name] = value;
         });
    }
};
$.fn.test = function(method) {
         if (test_methods[method]) {
              return test_methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
         } else if (typeof method === 'object' || ! method) {
              return test_methods.init.apply(this, arguments);
         } else {
              $.error('Method ' + method + ' does not exist on jQuery.test');
         }
};
 
$('#test1').test();
console.log( $('#test1').test('set', 'bbb', 88888).test('get', 'bbb') );

Вроде всё и работает, только для каждого метода надо писать return this.each(function(){}). Как ещё можно их создавать?!
Ответить с цитированием