12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /*
- * jQuery UI Slider Access
- * By: Trent Richardson [http://trentrichardson.com]
- * Version 0.3
- * Last Modified: 10/20/2012
- *
- * Copyright 2011 Trent Richardson
- * Dual licensed under the MIT and GPL licenses.
- * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
- * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
- *
- */
- (function($){
- $.fn.extend({
- sliderAccess: function(options){
- options = options || {};
- options.touchonly = options.touchonly !== undefined? options.touchonly : true; // by default only show it if touch device
- if(options.touchonly === true && !("ontouchend" in document)){
- return $(this);
- }
-
- return $(this).each(function(i,obj){
- var $t = $(this),
- o = $.extend({},{
- where: 'after',
- step: $t.slider('option','step'),
- upIcon: 'ui-icon-plus',
- downIcon: 'ui-icon-minus',
- text: false,
- upText: '+',
- downText: '-',
- buttonset: true,
- buttonsetTag: 'span',
- isRTL: false
- }, options),
- $buttons = $('<'+ o.buttonsetTag +' class="ui-slider-access">'+
- '<button data-icon="'+ o.downIcon +'" data-step="'+ (o.isRTL? o.step : o.step*-1) +'">'+ o.downText +'</button>'+
- '<button data-icon="'+ o.upIcon +'" data-step="'+ (o.isRTL? o.step*-1 : o.step) +'">'+ o.upText +'</button>'+
- '</'+ o.buttonsetTag +'>');
- $buttons.children('button').each(function(j, jobj){
- var $jt = $(this);
- $jt.button({
- text: o.text,
- icons: { primary: $jt.data('icon') }
- })
- .click(function(e){
- var step = $jt.data('step'),
- curr = $t.slider('value'),
- newval = curr += step*1,
- minval = $t.slider('option','min'),
- maxval = $t.slider('option','max'),
- slidee = $t.slider("option", "slide") || function(){},
- stope = $t.slider("option", "stop") || function(){};
- e.preventDefault();
-
- if(newval < minval || newval > maxval){
- return;
- }
-
- $t.slider('value', newval);
- slidee.call($t, null, { value: newval });
- stope.call($t, null, { value: newval });
- });
- });
-
- // before or after
- $t[o.where]($buttons);
- if(o.buttonset){
- $buttons.removeClass('ui-corner-right').removeClass('ui-corner-left').buttonset();
- $buttons.eq(0).addClass('ui-corner-left');
- $buttons.eq(1).addClass('ui-corner-right');
- }
- // adjust the width so we don't break the original layout
- var bOuterWidth = $buttons.css({
- marginLeft: ((o.where === 'after' && !o.isRTL) || (o.where === 'before' && o.isRTL)? 10:0),
- marginRight: ((o.where === 'before' && !o.isRTL) || (o.where === 'after' && o.isRTL)? 10:0)
- }).outerWidth(true) + 5;
- var tOuterWidth = $t.outerWidth(true);
- $t.css('display','inline-block').width(tOuterWidth-bOuterWidth);
- });
- }
- });
- })(jQuery);
|