(function (api) { // Range Slider Control api.controlConstructor['range-slider'] = wp.customize.Control.extend({ ready: function () { var control = this, desktop_slider = control.container.find('.appzend-slider.desktop-slider'), desktop_slider_input = desktop_slider.next('.appzend-slider-input').find('input.desktop-input'), tablet_slider = control.container.find('.appzend-slider.tablet-slider'), tablet_slider_input = tablet_slider.next('.appzend-slider-input').find('input.tablet-input'), mobile_slider = control.container.find('.appzend-slider.mobile-slider'), mobile_slider_input = mobile_slider.next('.appzend-slider-input').find('input.mobile-input'), slider_input, $this, val; // Desktop slider desktop_slider.slider({ range: 'min', value: desktop_slider_input.val(), min: +desktop_slider_input.attr('min'), max: +desktop_slider_input.attr('max'), step: +desktop_slider_input.attr('step'), slide: function (event, ui) { desktop_slider_input.val(ui.value).keyup(); }, change: function (event, ui) { control.settings['desktop'].set(ui.value); } }); // Tablet slider tablet_slider.slider({ range: 'min', value: tablet_slider_input.val(), min: +tablet_slider_input.attr('min'), max: +tablet_slider_input.attr('max'), step: +desktop_slider_input.attr('step'), slide: function (event, ui) { tablet_slider_input.val(ui.value).keyup(); }, change: function (event, ui) { control.settings['tablet'].set(ui.value); } }); // Mobile slider mobile_slider.slider({ range: 'min', value: mobile_slider_input.val(), min: +mobile_slider_input.attr('min'), max: +mobile_slider_input.attr('max'), step: +desktop_slider_input.attr('step'), slide: function (event, ui) { mobile_slider_input.val(ui.value).keyup(); }, change: function (event, ui) { control.settings['mobile'].set(ui.value); } }); // Update the slider when the number value change jQuery('input.desktop-input').on('change keyup paste', function () { $this = jQuery(this); val = $this.val(); slider_input = $this.parent().prev('.appzend-slider.desktop-slider'); slider_input.slider('value', val); }); jQuery('input.tablet-input').on('change keyup paste', function () { $this = jQuery(this); val = $this.val(); slider_input = $this.parent().prev('.appzend-slider.tablet-slider'); slider_input.slider('value', val); }); jQuery('input.mobile-input').on('change keyup paste', function () { $this = jQuery(this); val = $this.val(); slider_input = $this.parent().prev('.appzend-slider.mobile-slider'); slider_input.slider('value', val); }); // Save the values control.container.on('change keyup paste', '.desktop input', function () { control.settings['desktop'].set(jQuery(this).val()); }); control.container.on('change keyup paste', '.tablet input', function () { control.settings['tablet'].set(jQuery(this).val()); }); control.container.on('change keyup paste', '.mobile input', function () { control.settings['mobile'].set(jQuery(this).val()); }); } }); })(wp.customize);