$('body').on('click', '.toggle-filters', function() { var $this = $(this), rangeWrapper = $('.range-slider-wrapper'), advancedFilters = $('.advanced-filters'); if(!rangeWrapper.hasClass('filters-expanded')) { $this.html('Hide advanced filters'); rangeWrapper.addClass('filters-expanded'); advancedFilters.slideDown(); $('.slider').each(function() { var minValue = Number($(this).find('.min-value').attr('data-selected-value')), maxValue = Number($(this).attr('data-max')), value = Number($(this).attr('data-value')), step = Number($(this).attr('data-step')), $this = $(this); $this.slider({ range: true, values: [minValue, maxValue], slide: function(event, ui) { var selectedMin = ui.values[0], selectedMax = ui.values[1], currentValueMin = selectedMin, currentValueMax = selectedMax; if(selectedMin > 999) { currentValueMin = selectedMin / 1000 + 'k'; currentValueMax = selectedMax / 1000 + 'k'; } $this.find('.min-value').html(currentValueMin).attr('data-selected-value', selectedMin); $this.find('.max-value').html(currentValueMax).attr('data-selected-value', selectedMax); } }); var currentValueMin = minValue, currentValueMax = maxValue; if(currentValueMin > 999) { currentValueMin = currentValueMin / 1000 + 'k'; currentValueMax = currentValueMax / 1000 + 'k'; } $this.find('span[tabindex]:first-of-type .value').html(currentValueMin).attr('data-selected-value', minValue); $this.find('span[tabindex]:last-of-type').append('').find('.value').html(currentValueMax).attr('data-selected-value', maxValue); }); } else { $this.html('Show advanced filters'); rangeWrapper.removeClass('filters-expanded'); advancedFilters.slideUp(); $('.slider').each(function() { var value = Number($(this).attr('data-value')), $this = $(this); $this.slider({ value: value, range: 'min', slide: function(event, ui) { var currentValue = ui.value; if(currentValue > 999) { currentValue = currentValue / 1000 + 'k'; } $(this).find('.value').html(currentValue).attr('data-selected-value', ui.value); } }); }); } }); $('.slider').each(function() { var minValue = Number($(this).attr('data-min')), maxValue = Number($(this).attr('data-max')), value = Number($(this).attr('data-value')), step = Number($(this).attr('data-step')), $this = $(this); $this.slider({ range: 'min', value: value, min: minValue, max: maxValue, step: step, slide: function(event, ui) { var currentValue = ui.value; if(currentValue > 999) { currentValue = currentValue / 1000 + 'k'; } $(this).find('.value').html(currentValue).attr('data-selected-value', ui.value); } }); var sliderHandle = $this.find('.ui-slider-handle'), currentValue = sliderHandle.parent().attr('data-value'); sliderHandle.append(''); if(minValue > 999) { value = value / 1000 + 'k'; } $this.find('.value').html(value); });