Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.07.2012, 13:29
Интересующийся
Отправить личное сообщение для W1nD Посмотреть профиль Найти все сообщения от W1nD
 
Регистрация: 19.04.2011
Сообщений: 15

Шаблон для создание плагинов
http://stefangabos.ro/jquery/jquery-...ate-revisited/ Вот ссылка на шаьблон по созданию плагинов для jQuery. У меня возник вопрос.
1) Почему мы добавляем pluginname как метод jQuery?
2) Потом почему мы добавляем pluginname как $.fn
Зачем эти два обьявления, если бы можно было просто обьявить pluginname как функцию jQuery
Ответить с цитированием
  #2 (permalink)  
Старый 12.07.2012, 13:58
Аватар для zlodeeev
Кандидат Javascript-наук
Отправить личное сообщение для zlodeeev Посмотреть профиль Найти все сообщения от zlodeeev
 
Регистрация: 11.07.2012
Сообщений: 113

Если нужно написать плагин, который будет работать только с выбранными объектами, то нужно его создавать в jQuery.fn, а если нам неважно какие элементы страницы были выбраны, то лучше создавать функцию через jQuery.

Источник
Ответить с цитированием
  #3 (permalink)  
Старый 12.07.2012, 14:09
Интересующийся
Отправить личное сообщение для W1nD Посмотреть профиль Найти все сообщения от W1nD
 
Регистрация: 19.04.2011
Сообщений: 15

Сообщение от zlodeeev Посмотреть сообщение
Если нужно написать плагин, который будет работать только с выбранными объектами, то нужно его создавать в jQuery.fn, а если нам неважно какие элементы страницы были выбраны, то лучше создавать функцию через jQuery.

Источник
Все доступно написано и понятно. Только вопрос в том, почему и первый и второй вариант одновременно используються в данном шаблоне?
Ответить с цитированием
  #4 (permalink)  
Старый 12.07.2012, 14:20
Аватар для zlodeeev
Кандидат Javascript-наук
Отправить личное сообщение для zlodeeev Посмотреть профиль Найти все сообщения от zlodeeev
 
Регистрация: 11.07.2012
Сообщений: 113

fn — это короткая ссылка на jQuery.prototype, потому можно писать:
jQuery.fn.plugin = function () {
    // Here is my plugin
    // this здесь ссылается на jquery-объект, от которого вызван метод
};


И данный плагин появится во всех уже созданных и тех, что создадутся сущностях. Добавляя свойства напрямую в объект мы реализуем статические свойства:

jQuery.plugin = function () {
    // Here is my plugin
};


Таким образом, наилучший шаблон для небольших плагинов:

new function (document, $, undefined) {
    
    var privateMethod = function () {
        // private method, used for plugin
    };
    
    $.fn.myPlugin = function () {
        
    };
    
    // и, если нужен метод, не привязанный к dom-элементам:
    $.myPlugin = function () {
        
    };
    
}(document, jQuery);


А в твоём примере просто изменён порядок $.fn.plugin и $.plugin
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTA-приложение для радио Pianorama Magneto Ваши сайты и скрипты 42 22.01.2012 08:34
Создание формы для операций с данными Alexander43 Элементы интерфейса 1 06.10.2011 09:09
Нужны светлые головы для создания нового web-проекта Kostanakis AJAX и COMET 3 03.10.2011 11:20
Создание скрипта! Создание диктанта для учеников! Елизавета Работа 10 30.06.2010 21:00