Sha256: 6321aaaf9d90e6ff20b0f92f5719abde927a4c21496d80c2902f52f8669c8b46

Contents?: true

Size: 1.75 KB

Versions: 81

Compression:

Stored size: 1.75 KB

Contents

(function($) {

  $.fn.radioSlider = function(options) {
    var settings = {
      'sliderImage'     : '/images/tenon/slider-button.png',
      'activeClass'     : 'slider-active',
      'leftOffset'      : 0,
      'rightOffset'     : 19
    };

    if ( options ) { $.extend( settings, options ); }

    this.each(function() {
      var $this = this;
      var buttons = $('input:radio', this);
      var slideWidget = $('<div />').addClass('slider-widget').append($('<img />').attr('src', settings.sliderImage));

      //insert the widget
      $('label:first', this).after(slideWidget);

      // Set up the buttons
      buttons
        .css({ position: 'absolute', left: -9999 })
        .focus(function () {
          slideWidget.find('img').addClass('focus');
        })
        .blur(function () {
          slideWidget.find('img').removeClass('focus');
        });

      //charge the events
      buttons.bind('change.radioSlider', function() { updateSlider($this); });
      $('div.slider-widget', this).bind('click.radioSlider', function() { swapActive($this); });
      updateSlider(this);
    });

    function updateSlider(holder) {
      holder = $(holder);
      var checked = $('input[type=radio]:checked', holder);
      var slider = $('div.slider-widget img', holder);
      if (checked.index($('input[type=radio]', holder)) === 0) {
        slider.animate({left: settings.leftOffset}, 100);
      } else {
        slider.animate({left: settings.rightOffset}, 100);
      }
      $('label', holder).removeClass(settings.activeClass);
      $('input[type=radio]:checked', holder).closest('label').addClass(settings.activeClass);
    }

    function swapActive(holder) {
      $(holder).find('input[type=radio]').not(':checked').click().change();
    }

  };
})(jQuery);

Version data entries

81 entries across 81 versions & 1 rubygems

Version Path
tenon-1.1.8 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.1.7 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.1.6 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.1.5 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.1.4 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.1.3 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.1.2 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.1.1 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.76 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.75 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.74 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.73 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.72 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.71 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.70 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.69 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.68 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.67 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.66 vendor/assets/javascripts/jquery.radioSlider.js
tenon-1.0.65 vendor/assets/javascripts/jquery.radioSlider.js