Плагин для добавления чекбокса «Выбрать все» в определенном блоке Drupal.
Использование
(function($) {$(document).ready(function() { var options = {'label': 'Выбрать все',}; $('.form-item-field-event-sites-und').drupalCheckAll(options); });}(jQuery));
Параметры
- label: Надпись на чекбоксе
- location: Расположение 'top' или 'bottom'
- prefix: html который будет добавлен новому чекбоксу
- suffix: html который будет добавлен новому чекбоксу
- id: id нового чекбокса
- callback: функция выполняемая при клике на чекбокс
Плагин
/* @author Aaron Klump, In the Loft Studios, LLC * @see http://www.intheloftstudios.com * @see https://gist.github.com/4261607 */ (function($) { $.fn.drupalCheckAll = function(options) { // Create some defaults, extending them with any options that were provided var settings = $.extend( { 'label' : 'Check All', 'location' : 'prepend', 'prefix' : '<div class="form-item">', 'id' : $(this).parents('form').attr('id') + '-trigger', 'classes' : 'form-checkbox drupal-check-all-trigger', 'suffix' : '</div>', 'children' : '.form-checkbox', 'callback' : null }, options); var $wrapper = $(this); // Do not apply if total children is less than 2 if ($wrapper.find(settings.children).length < 2) { console.log($wrapper.find(settings.children).length); return $(this); } // Check if we can translate (the test is for portability outside Drupal) if (Drupal.t !== undefined) { settings.label = Drupal.t(settings.label); } var $toggle = $(settings.prefix + '<input id="' + settings.id + '" type="checkbox" class="' + settings.classes + '"> <label for="' + settings.id + '" class="option">' + settings.label + '</label>' + settings.suffix); switch (settings.location) { case 'bottom': $wrapper.append($toggle); break; case 'top': default: $wrapper.prepend($toggle); break; } // Click handler $toggle.find(settings.children).click(function(){ var state = $(this).is(':checked'); var $children = $wrapper.find(settings.children); $children.attr('checked', state); // Fire callback if provided if (options.callback) { $form = $wrapper.parents('form'); options.callback($form, $children); } }); return $(this); }; })(jQuery);
Ссылки на источники
Теги