PluginProbe
QuadMenu – Mega Menu / 1.8.8
QuadMenu – Mega Menu v1.8.8
3.3.8 3.3.7 3.3.6 trunk 1.8.4 1.8.5 1.8.7 1.8.8 1.8.9 1.9.0 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 88 releases
quadmenu / lib / ReduxCore / inc / fields / spinner / field_spinner.js

field_spinner.js in QuadMenu – Mega Menu 1.8.8, at lib/ReduxCore/inc/fields/spinner/field_spinner.js

129 lines 4.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /*global redux_change, redux*/
2
3 (function( $ ) {
4 "use strict";
5
6 redux.field_objects = redux.field_objects || {};
7 redux.field_objects.spinner = redux.field_objects.spinner || {};
8
9 $( document ).ready(
10 function() {
11 //redux.field_objects.spinner.init();
12 }
13 );
14
15 redux.field_objects.spinner.init = function( selector ) {
16
17 if ( !selector ) {
18 selector = $( document ).find( ".redux-group-tab:visible" ).find( '.redux-container-spinner:visible' );
19 }
20
21 $( selector ).each(
22 function() {
23 var el = $( this );
24 var parent = el;
25 if ( !el.hasClass( 'redux-field-container' ) ) {
26 parent = el.parents( '.redux-field-container:first' );
27 }
28 if ( parent.is( ":hidden" ) ) { // Skip hidden fields
29 return;
30 }
31 if ( parent.hasClass( 'redux-field-init' ) ) {
32 parent.removeClass( 'redux-field-init' );
33 } else {
34 return;
35 }
36 el.find( '.redux_spinner' ).each(
37 function() {
38 //slider init
39 var spinner = $( this ).find( '.spinner-input' ).data();
40 spinner.id = $( this ).find( '.spinner-input' ).attr( 'id' );
41
42 el.find( "#" + spinner.id ).spinner(
43 {
44 value: parseFloat( spinner.val, null ),
45 min: parseFloat( spinner.min, null ),
46 max: parseFloat( spinner.max, null ),
47 step: parseFloat( spinner.step, null ),
48 range: "min",
49
50 slide: function( event, ui ) {
51 var input = $( "#" + spinner.id );
52 input.val( ui.value );
53 redux_change( input );
54 }
55 }
56 );
57
58 // Limit input for negative
59 var neg = false;
60 if ( parseInt( spinner.min, null ) < 0 ) {
61 neg = true;
62 }
63
64 //el.find( "#" + spinner.id ).numeric(
65 // {
66 // allowMinus: neg,
67 // min: spinner.min,
68 // max: spinner.max
69 // }
70 //);
71
72 }
73 );
74
75 // Update the slider from the input and vice versa
76 el.find( ".spinner-input" ).keyup(
77 function() {
78 $( this ).addClass( 'spinnerInputChange' );
79 }
80 );
81
82 el.find( ".spinner-input" ).focus(
83 function() {
84 redux.field_objects.spinner.clean(
85 $( this ).val(), $( this )
86 );
87 }
88 );
89
90 el.find( '.spinner-input' ).typeWatch(
91 {
92 callback: function( value ) {
93 redux.field_objects.spinner.clean(
94 value, $( this )
95 );
96 },
97
98 wait: 500,
99 highlight: false,
100 captureLength: 1
101 }
102 );
103 }
104 );
105 };
106
107 redux.field_objects.spinner.clean = function( value, selector ) {
108
109 if ( !selector.hasClass( 'spinnerInputChange' ) ) {
110 return;
111 }
112 selector.removeClass( 'spinnerInputChange' );
113
114 var spinner = selector.data();
115 value = parseFloat( value );
116
117 if ( value === "" || value === null ) {
118 value = spinner.min;
119 } else if ( value >= parseInt( spinner.max ) ) {
120 value = spinner.max;
121 } else if ( value <= parseInt( spinner.min ) ) {
122 value = spinner.min;
123 } else {
124 value = Math.round( value / spinner.step ) * spinner.step;
125 }
126 selector.val( value ).trigger( 'change' );
127 };
128
129 })( jQuery );