сегодня в 21:19
Задача
Получить возможность стилизовать чекбоксы с полным функционалом стандартных, с возможностью оставить стандартные при выключенном javascript-е, и вооружить различными колбеками и кастомными событиями.
Посмотреть пример на jsfiddle
Скачать исходники из github
Как это работает
HTML:
<fieldset class="frame-checks-not-standart">
<label>
<span class="niceCheck b_n">
<input autofocus type="checkbox" checked="checked" tabindex="1"/>
</span>
<span class="title">focus checked</span>
</label>
</fieldset>
CSS:
Класс
b_n в стилях должен иметь правило background-image:none для того, чтобы при выключенном javascript-е сберечь стандартные чекбоксы.JS:
$(‘.frame-labels’).nStCheck();
Что еще можно знать
Параметры
Все параметры имеют дефолтное значение.wrapper(jQuery объект)
Элемент-обертка, по которому будет производиться переключение чекбокса;elCheckWrap(jQuery селектор)
Элемент-обертка, который и будет использоваться для отображения различных состояний чекбокса;classRemove
название класса, который надо удалить у$(elCheckWrap)(позволяет оставлять стандартное или же использовать нестандартное отображение чекбоксов).evCond(булевый тип)
Эслиtrueбудет вызван методtrigger, иначе будет вызван методafter;trigger(метод)
при вызове получает четыре параметра:- объект, в контексте которого вызван плагин;
wrapper;elCheckWrap;- объект события (функции обработчика события).
after(метод)
при вызове получает те же параметры, что иtrigger. Если используется, то состояние чекбокса не меняется, его можно изменить непосредственно в функции (это нужно, к примеру, если мы ждем ответ от сервера);
Методы
Все методы принимают единственный параметр$(elCheckWrap)— если метод вызван как функция. Если метод вызван в контексте$(elCheckWrap), то в функции обработчика принимает значение оператораthis.
Напомню пример вызова метода:$(‘.niceCheck’).drop(‘changeCheck’)
Также методы этого плагина можно вызвать так:$.drop(‘changeCheck’)($(‘.niceCheck’))_changeCheckStart
Метод задает начальное состояние (вызывается при инициализации плагина);checkChecked
Задает положительное значение атрибутаchecked, добавляет классactiveдля wrapper и$(elCheckWrap);checkUnChecked
Задает отрицательное значение атрибутаchecked, убирает классactiveдляwrapperи$(elCheckWrap);changeCheck
Задает отрицательное значение атрибутаchecked, если оно положительное, и наоборот (своего рода toogle);checkAllChecks
Задает положительное значение атрибутаcheckedдля всех переданных объектов;checkAllReset
Задает отрицательное значение атрибутаcheckedдля всех переданных объектов;checkAllDisabled
Задает положительное значение атрибутаdisabledдля всех переданных объектов, добавляет класс disabled к wrapper и $(elCheckWrap);checkAllEnabled
Задает отрицательное значение атрибутаdisabledдля всех переданных объектов, убирает классdisabledдля wrapper и$(elCheckWrap);
События
Навешивание всех событий используется с namespace-ом (nstcheck)reset(form)
Обработчик события задействует методcheckAllResetдля всех прежде не выбраных иcheckAllChecksдля прежде выбраных;mousedown(input)
Обработчик события отменяет стандартное поведение и изменяет состояние;click(input)
Обработчик задейстует методstopPropagation()к объекту события;keyup(input)
Обработчик события отменяет стандартное поведение при нажатии клавиши «пробел» и изменяет состояние;focus(input)
Обработчик события добавляет классfocusдля$(elCheckWrap)иwrapper;blur(input)
Обработчик события убирает классfocusдля$(elCheckWrap)иwrapper;change(input)
Обработчик события отменяет стандартное поведение;click(wrapper)
Обработчик события “повешен” на элемент wrapper (изменяет состояние).
Кастомные события
Навешивание всех кастомных событий происходит с namespace-ом (nstcheck)Все кастомные события записывают в объект события одно свойство:
el ($(elCheckWrap));Эти события можно повесить на какой-нибудь
input, который задействован в этом плагине, например так:
$('input').on('nstcheck.cc', function(e){
console.log(this); // $('input') - объект, в контексте которого вызывается //событие
console.log(e.el); // выведет $(elCheckWrap)
});nstcheck.cc
Настает при вызове методаcheckChecked;nstcheck.cuc
Настает при вызове методаcheckUnChecked;nstcheck.ad
Настает при вызове методаcheckAllDisabled;nstcheck.ae
Настает при вызове методаcheckAllEnabled.
Заключение
Плагин снабжен полным функционалом стандартных чекбоксов, имеет компактную структуру HTML — представление по сравнении со структурой стандартных, а также снабжен кастомными событиями и колбеками. Можно стилизовать любое состояние, которое есть в стандартных, работает при Tab обходе, работает стандартная кнопка reset.
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.
Комментариев нет:
Отправить комментарий