Guest User

Untitled

a guest
Jul 19th, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. (function ($) {
  2. // Alter chosen markup for dropdowns with icons.
  3. $('.dropdown--hasIcons .dropdown__select').on('chosen:showing_dropdown', function (event, data) {
  4. // Since items are not initially created in DOM we will alter the markup on dropdown show.
  5. var resultsData = data.chosen.results_data,
  6. $dropdownItems = data.chosen.dropdown.find('li');
  7.  
  8. resultsData.forEach(function (result, i) {
  9. $dropdownItems.eq(i).prepend('<i class="dropdown__icon dropdown__icon-' + result.value + '"></i>')
  10. });
  11. }).on('chosen:ready', function (event, data) {
  12. // We also need to prepend a icon for selected
  13. // item which is available on chosen ready.
  14. var $chosenSelectedItem = data.chosen.selected_item,
  15. resultsData = data.chosen.results_data;
  16.  
  17. $chosenSelectedItem.prepend('<i class="dropdown__icon dropdown__icon-' + resultsData[0].value + '"></i>');
  18. }).on('chosen:hiding_dropdown', function (event, data) {
  19. // Update selected item icon after we select an option(which leads to dropdown hide event).
  20. var $chosenSelectedItem = data.chosen.selected_item,
  21. selectedLanguage = $(event.target).find(':selected').val(),
  22. resultsData = data.chosen.results_data,
  23. selectedLanguageIndex = data.chosen.current_selectedIndex;
  24.  
  25. $chosenSelectedItem
  26. .find('.dropdown__icon')
  27. .removeClass('dropdown__icon-' + resultsData[selectedLanguageIndex].value)
  28. .addClass('dropdown__icon-' + selectedLanguage);
  29. });
  30.  
  31. // Chosen initialization.
  32. $('.js-chosen').chosen({
  33. "disable_search": true,
  34. "inherit_select_classes": true,
  35. "width": "100%"
  36. });
  37. })(jQuery);
Add Comment
Please, Sign In to add comment