Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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(){}). Как ещё можно их создавать?!
Ответить с цитированием
  #2 (permalink)  
Старый 29.09.2011, 10:51
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Во-первых, посмотрите документацию с оф. сайта jquery. И еще, плагин не должен работать с переменными, функциями вне себя, как это делается в вашем случае с test_methods.
Ответить с цитированием
  #3 (permalink)  
Старый 29.09.2011, 13:16
Профессор
Отправить личное сообщение для zebra Посмотреть профиль Найти все сообщения от zebra
 
Регистрация: 14.09.2011
Сообщений: 523

Сообщение от bayrach Посмотреть сообщение
Во-первых, посмотрите документацию с оф. сайта jquery. И еще, плагин не должен работать с переменными, функциями вне себя, как это делается в вашем случае с test_methods.
Это и есть пример с оф сайта.
Сообщение от bayrach
работать с переменными, функциями вне себя
и почему же ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery plugIn Nightmare jQuery 6 18.09.2011 16:26
jQuery Cycle Plugin - position: absolute; brabuz jQuery 1 26.08.2011 15:56
jQuery plugin failed lpfan jQuery 1 22.04.2011 16:11
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44