- PVSM.RU - https://www.pvsm.ru -
Получить возможность стилизовать чекбоксы с полным функционалом стандартных, с возможностью оставить стандартные при выключенном javascript-е, и вооружить различными колбеками и кастомными событиями.

<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>
Класс b_n в стилях должен иметь правило background-image:none для того, чтобы при выключенном javascript-е сберечь стандартные чекбоксы.
$(‘.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.
Автор: frontMisc
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/49518
Ссылки в тексте:
[1] Посмотреть пример на jsfiddle: http://jsfiddle.net/domovoj/9BPAf/
[2] Скачать исходники из github: https://github.com/domovoj/checkboxes
[3] Источник: http://habrahabr.ru/post/204030/
Нажмите здесь для печати.