diff --git a/better_exposed_filters.js b/better_exposed_filters.js index 87d606e..f1e46bf 100644 --- a/better_exposed_filters.js +++ b/better_exposed_filters.js @@ -98,6 +98,33 @@ } // attach: function() { }; // Drupal.behaviors.better_exposed_filters = { + // This is only needed to provide ajax functionality + Drupal.behaviors.better_exposed_filters_select_as_links = { + attach: function(context) { + + $('.bef-select-as-links').once(function() { + $widgets = $('.views-exposed-widgets'); + $widgets.find('.views-submit-button input, .bef-select-as-links select').hide(); + $options = $('.bef-select-as-links select option'); + $(this).find('a').click(function(event) { + // we have to prevent the page load triggered by the links + event.preventDefault(); + $options.removeAttr('selected'); + text = $(this).text(); + // set the corresponding option inside the select element + $options.filter(function() { + return $(this).text() == text; + }).attr('selected', 'selected'); + + // submit the form + $(this).parents('.views-exposed-widgets') + .find('.views-submit-button input').click(); + }); + }); + + } + }; + /* * Helper functions */ diff --git a/better_exposed_filters.theme b/better_exposed_filters.theme index 57835e2..4003347 100644 --- a/better_exposed_filters.theme +++ b/better_exposed_filters.theme @@ -481,6 +481,7 @@ function theme_select_as_links($vars) { ); $output = '