@@ -36,7 +36,11 @@ $.widget( "ui.slider", $.ui.mouse, {
36
36
37
37
_create : function ( ) {
38
38
var self = this ,
39
- o = this . options ;
39
+ o = this . options ,
40
+ existingHandles = this . element . find ( ".ui-slider-handle" ) . addClass ( "ui-state-default ui-corner-all" ) ,
41
+ handle = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>" ,
42
+ handleCount = ( o . values && o . values . length ) || 1 ,
43
+ handles = [ ] ;
40
44
41
45
this . _keySliding = false ;
42
46
this . _mouseSliding = false ;
@@ -50,57 +54,35 @@ $.widget( "ui.slider", $.ui.mouse, {
50
54
" ui-slider-" + this . orientation +
51
55
" ui-widget" +
52
56
" ui-widget-content" +
53
- " ui-corner-all" ) ;
54
-
55
- if ( o . disabled ) {
56
- this . element . addClass ( "ui-slider-disabled ui-disabled" ) ;
57
- }
57
+ " ui-corner-all" +
58
+ ( o . disabled ? " ui-slider-disabled ui-disabled" : "" ) ) ;
58
59
59
60
this . range = $ ( [ ] ) ;
60
61
61
62
if ( o . range ) {
62
63
if ( o . range === true ) {
63
- this . range = $ ( "<div></div>" ) ;
64
64
if ( ! o . values ) {
65
65
o . values = [ this . _valueMin ( ) , this . _valueMin ( ) ] ;
66
66
}
67
67
if ( o . values . length && o . values . length !== 2 ) {
68
68
o . values = [ o . values [ 0 ] , o . values [ 0 ] ] ;
69
69
}
70
- } else {
71
- this . range = $ ( "<div></div>" ) ;
72
- }
73
-
74
- this . range
75
- . appendTo ( this . element )
76
- . addClass ( "ui-slider-range" ) ;
77
-
78
- if ( o . range === "min" || o . range === "max" ) {
79
- this . range . addClass ( "ui-slider-range-" + o . range ) ;
80
70
}
81
71
82
- // note: this isn't the most fittingly semantic framework class for this element,
83
- // but worked best visually with a variety of themes
84
- this . range . addClass ( "ui-widget-header" ) ;
85
- }
86
-
87
- if ( $ ( ".ui-slider-handle" , this . element ) . length === 0 ) {
88
- $ ( "<a href='#'></a>" )
72
+ this . range = $ ( "<div></div>" )
89
73
. appendTo ( this . element )
90
- . addClass ( "ui-slider-handle" ) ;
74
+ . addClass ( "ui-slider-range" +
75
+ // note: this isn't the most fittingly semantic framework class for this element,
76
+ // but worked best visually with a variety of themes
77
+ " ui-widget-header" +
78
+ ( ( o . range === "min" || o . range === "max" ) ? " ui-slider-range-" + o . range : "" ) ) ;
91
79
}
92
80
93
- if ( o . values && o . values . length ) {
94
- while ( $ ( ".ui-slider-handle" , this . element ) . length < o . values . length ) {
95
- $ ( "<a href='#'></a>" )
96
- . appendTo ( this . element )
97
- . addClass ( "ui-slider-handle" ) ;
98
- }
81
+ for ( var i = existingHandles . length ; i < handleCount ; i += 1 ) {
82
+ handles . push ( handle ) ;
99
83
}
100
84
101
- this . handles = $ ( ".ui-slider-handle" , this . element )
102
- . addClass ( "ui-state-default" +
103
- " ui-corner-all" ) ;
85
+ this . handles = existingHandles . add ( $ ( handles . join ( "" ) ) . appendTo ( self . element ) ) ;
104
86
105
87
this . handle = this . handles . eq ( 0 ) ;
106
88
0 commit comments