better_exposed_filters-8.x-4.x-dev/js/better_exposed_filters.js
js/better_exposed_filters.js
/** * @file * better_exposed_filters.js * * Provides some client-side functionality for the Better Exposed Filters module. */ (function ($, Drupal, once) { Drupal.behaviors.betterExposedFilters = { attach: function (context) { // Add highlight class to checked checkboxes for better theming. $('.bef-tree input[type=checkbox], .bef-checkboxes input[type=checkbox]') // Highlight newly selected checkboxes. .change(function () { _bef_highlight(this, context); }) .filter(':checked').closest('.form-item', context).addClass('highlight'); } }; /* * Helper functions */ /** * Adds/Removes the highlight class from the form-item div as appropriate. */ function _bef_highlight(elem, context) { $elem = $(elem, context); $elem.attr('checked') ? $elem.closest('.form-item', context).addClass('highlight') : $elem.closest('.form-item', context).removeClass('highlight'); } /** * Adds the data-bef-auto-submit-exclude to elements with type="text". */ Drupal.behaviors.autosubmitExcludeTextfield = { attach: function (context, settings) { if (!settings.better_exposed_filters?.autosubmit_exclude_textfield) { return; } $(once('autosubmit-exclude-textfield', '.bef-exposed-form', context)).each(function () { $(this).find('*[type="text"]').attr('data-bef-auto-submit-exclude', ''); }); } }; })(jQuery, Drupal, once);