daily pastebin goal
48%
SHARE
TWEET

Untitled

sdevilcry Jul 10th, 2013 544 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $.fn.odropdown = function(options) {
  2.  
  3.         var default_settings = {
  4.                 placeholder : 'span',
  5.                 placeholder_text : '',
  6.                 selected_index : 0
  7.         };
  8.  
  9.         var settings = $.extend( {}, default_settings, options );
  10.  
  11.         return this.each(function() {
  12.                 var $this = $(this);
  13.                 var $list = $this.find('ul');
  14.                 var selected_index = settings.selected_index;
  15.                 var $placeholder = $this.find(settings.placeholder);
  16.  
  17.                 if (settings.placeholder_text.length) {
  18.                         $placeholder.text(settings.placeholder_text);
  19.                 }
  20.  
  21.                 // Prepare Form / input selection
  22.                 var $input = $('input[name="' + $list.attr('data-target') + '"]');
  23.                 var $form = $this.parents('form');
  24.  
  25.                 // Check if the form exist
  26.                 if ($form.length) {
  27.                         if (!$input.length) {
  28.                                 $input = $('<input type="hidden" name="' + $list.attr('data-target') + '" value="" />');
  29.                                 $input.appendTo($form);
  30.                         }
  31.                 }
  32.  
  33.                 $this.on('click', function(event){
  34.                         $(this).toggleClass('active');
  35.                         return false;
  36.                 });
  37.  
  38.                 $list.find('li').on('click',function(e){
  39.                         var $li = $(this);
  40.                         selected_index = $li.index();
  41.                         $placeholder.text($li.text());
  42.  
  43.  
  44.                         if ($input) {
  45.                                 $input.attr('value', $li.attr('data-id'));
  46.  
  47.                                 // Trigger some events
  48.                                 $input.trigger('change');
  49.                                 $input.trigger('click');
  50.  
  51.                                 // Turn back off list
  52.                                 $this.toggleClass('active');
  53.                         }
  54.                 });
  55.         });
  56. };
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top