jQ плагин с методами

методы интегрированы в плагин

by Евгений

HTML

<p><a class="start" href="#">Кликнуть тут</a>, <a class="start" href="#">или тут</a>, или <a href="#" id="addclick">добавить еще кликалку</a></p>
  <p id="container">Тут будет отображаться результат работы плагина</p>

JavaScript

//[k] как обычно, подключение действий над элементами производим по готовности документа
        $(document).ready(function(){
            //[k] плагин jquery можно вызвать как для группы элементов
            $('.start').etest({
              option:'текст написан плагином, вызванным по ссылке, которая была на странице сразу'
            });
            
            $('#addclick').click(function(){
              $(this)
              //[k] такой хитрый метод создания нового элемента выбран потому, что я не знаю другого
              //[k] быстрого способа добавлять пробелы между элементами
              .after(' <a href="#">Еще кликалка</a> ')
              .next('a')
              //[k] или соответственно для одного элемента, даже в процессе его создания
              .etest({option:'написано плагином, который вызван дополнительно созданной ссылкой'});
            });
        });




//[k] простой плагин для jquery, демонстрирующий работу методов
//[k] автор kodji mailto:[email protected] http://kodji.name

//[k] сам по себе плагин это просто расширение прототипа jquery, вообще fn - это просто синоним prototype
jQuery.fn.etest = function(options){
    //[k] объект методов и опций плагина, храним тут все, что нам нужно для работы с элементами плагина
    //[k] методы соответственно смогут получать текущие значения options
    //[k] в случаях, когда у каждого контрола должна быть своя хранилка для текущего состояния, то
    //[k] делать её необходимо внутри соответствующей итерации.
    //[k] сейчас у нас получается все контролы используют единое хранилище
    var plugin = jQuery.extend({
        option : 'эта опция будет переопределена при вызове плагина',
        container : '#container', //[k] идентификатор контейнера с которым работает плагин, может быть переопределен, в принципе
        //[k] метод контролирует клики по контролу
        //[k] хочу заметить, что хранение методов в той части объекта, которая может быть переопределена при вызове плагина,
        //[k]...