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]...