@@ -71,111 +71,111 @@ $.widget( "ui.menu", {
71
71
72
72
this . refresh ( ) ;
73
73
74
- this . element . attr ( "tabIndex" , 0 ) . bind ( "keydown.menu" , function ( event ) {
75
- if ( self . options . disabled ) {
76
- return ;
77
- }
78
- switch ( event . keyCode ) {
79
- case $ . ui . keyCode . PAGE_UP :
80
- self . previousPage ( event ) ;
81
- event . preventDefault ( ) ;
82
- event . stopImmediatePropagation ( ) ;
83
- break ;
84
- case $ . ui . keyCode . PAGE_DOWN :
85
- self . nextPage ( event ) ;
86
- event . preventDefault ( ) ;
87
- event . stopImmediatePropagation ( ) ;
88
- break ;
89
- case $ . ui . keyCode . HOME :
90
- self . _move ( "first" , "first" , event ) ;
91
- event . preventDefault ( ) ;
92
- event . stopImmediatePropagation ( ) ;
93
- break ;
94
- case $ . ui . keyCode . END :
95
- self . _move ( "last" , "last" , event ) ;
96
- event . preventDefault ( ) ;
97
- event . stopImmediatePropagation ( ) ;
98
- break ;
99
- case $ . ui . keyCode . UP :
100
- self . previous ( event ) ;
101
- event . preventDefault ( ) ;
102
- event . stopImmediatePropagation ( ) ;
103
- break ;
104
- case $ . ui . keyCode . DOWN :
105
- self . next ( event ) ;
106
- event . preventDefault ( ) ;
107
- event . stopImmediatePropagation ( ) ;
108
- break ;
109
- case $ . ui . keyCode . LEFT :
110
- if ( self . collapse ( event ) ) {
74
+ this . element . attr ( "tabIndex" , 0 ) ;
75
+ this . _bind ( {
76
+ "keydown" : function ( event ) {
77
+ switch ( event . keyCode ) {
78
+ case $ . ui . keyCode . PAGE_UP :
79
+ self . previousPage ( event ) ;
80
+ event . preventDefault ( ) ;
111
81
event . stopImmediatePropagation ( ) ;
112
- }
113
- event . preventDefault ( ) ;
114
- break ;
115
- case $ . ui . keyCode . RIGHT :
116
- if ( self . expand ( event ) ) {
82
+ break ;
83
+ case $ . ui . keyCode . PAGE_DOWN :
84
+ self . nextPage ( event ) ;
85
+ event . preventDefault ( ) ;
117
86
event . stopImmediatePropagation ( ) ;
118
- }
119
- event . preventDefault ( ) ;
120
- break ;
121
- case $ . ui . keyCode . ENTER :
122
- if ( self . active . children ( "a[aria-haspopup='true']" ) . length ) {
123
- if ( self . expand ( event ) ) {
124
- event . stopImmediatePropagation ( ) ;
125
- }
126
- }
127
- else {
128
- self . select ( event ) ;
87
+ break ;
88
+ case $ . ui . keyCode . HOME :
89
+ self . _move ( "first" , "first" , event ) ;
90
+ event . preventDefault ( ) ;
129
91
event . stopImmediatePropagation ( ) ;
130
- }
131
- event . preventDefault ( ) ;
132
- break ;
133
- case $ . ui . keyCode . ESCAPE :
134
- if ( self . collapse ( event ) ) {
92
+ break ;
93
+ case $ . ui . keyCode . END :
94
+ self . _move ( "last" , "last" , event ) ;
95
+ event . preventDefault ( ) ;
135
96
event . stopImmediatePropagation ( ) ;
136
- }
137
- event . preventDefault ( ) ;
138
- break ;
139
- default :
140
- event . stopPropagation ( ) ;
141
- clearTimeout ( self . filterTimer ) ;
142
- var match ,
143
- prev = self . previousFilter || "" ,
144
- character = String . fromCharCode ( event . keyCode ) ,
145
- skip = false ;
146
-
147
- if ( character == prev ) {
148
- skip = true ;
149
- } else {
150
- character = prev + character ;
151
- }
152
- function escape ( value ) {
153
- return value . replace ( / [ - [ \] { } ( ) * + ? . , \\ ^ $ | # \s ] / g , "\\$&" ) ;
154
- }
155
- match = self . activeMenu . children ( ".ui-menu-item" ) . filter ( function ( ) {
156
- return new RegExp ( "^" + escape ( character ) , "i" )
157
- . test ( $ ( this ) . children ( "a" ) . text ( ) ) ;
158
- } ) ;
159
- match = skip && match . index ( self . active . next ( ) ) != - 1 ? self . active . nextAll ( ".ui-menu-item" ) : match ;
160
- if ( ! match . length ) {
161
- character = String . fromCharCode ( event . keyCode ) ;
162
- match = self . activeMenu . children ( ".ui-menu-item" ) . filter ( function ( ) {
97
+ break ;
98
+ case $ . ui . keyCode . UP :
99
+ self . previous ( event ) ;
100
+ event . preventDefault ( ) ;
101
+ event . stopImmediatePropagation ( ) ;
102
+ break ;
103
+ case $ . ui . keyCode . DOWN :
104
+ self . next ( event ) ;
105
+ event . preventDefault ( ) ;
106
+ event . stopImmediatePropagation ( ) ;
107
+ break ;
108
+ case $ . ui . keyCode . LEFT :
109
+ if ( self . collapse ( event ) ) {
110
+ event . stopImmediatePropagation ( ) ;
111
+ }
112
+ event . preventDefault ( ) ;
113
+ break ;
114
+ case $ . ui . keyCode . RIGHT :
115
+ if ( self . expand ( event ) ) {
116
+ event . stopImmediatePropagation ( ) ;
117
+ }
118
+ event . preventDefault ( ) ;
119
+ break ;
120
+ case $ . ui . keyCode . ENTER :
121
+ if ( self . active . children ( "a[aria-haspopup='true']" ) . length ) {
122
+ if ( self . expand ( event ) ) {
123
+ event . stopImmediatePropagation ( ) ;
124
+ }
125
+ }
126
+ else {
127
+ self . select ( event ) ;
128
+ event . stopImmediatePropagation ( ) ;
129
+ }
130
+ event . preventDefault ( ) ;
131
+ break ;
132
+ case $ . ui . keyCode . ESCAPE :
133
+ if ( self . collapse ( event ) ) {
134
+ event . stopImmediatePropagation ( ) ;
135
+ }
136
+ event . preventDefault ( ) ;
137
+ break ;
138
+ default :
139
+ event . stopPropagation ( ) ;
140
+ clearTimeout ( self . filterTimer ) ;
141
+ var match ,
142
+ prev = self . previousFilter || "" ,
143
+ character = String . fromCharCode ( event . keyCode ) ,
144
+ skip = false ;
145
+
146
+ if ( character == prev ) {
147
+ skip = true ;
148
+ } else {
149
+ character = prev + character ;
150
+ }
151
+ function escape ( value ) {
152
+ return value . replace ( / [ - [ \] { } ( ) * + ? . , \\ ^ $ | # \s ] / g , "\\$&" ) ;
153
+ }
154
+ match = self . activeMenu . children ( ".ui-menu-item" ) . filter ( function ( ) {
163
155
return new RegExp ( "^" + escape ( character ) , "i" )
164
156
. test ( $ ( this ) . children ( "a" ) . text ( ) ) ;
165
157
} ) ;
166
- }
167
- if ( match . length ) {
168
- self . focus ( event , match ) ;
169
- if ( match . length > 1 ) {
170
- self . previousFilter = character ;
171
- self . filterTimer = setTimeout ( function ( ) {
158
+ match = skip && match . index ( self . active . next ( ) ) != - 1 ? self . active . nextAll ( ".ui-menu-item" ) : match ;
159
+ if ( ! match . length ) {
160
+ character = String . fromCharCode ( event . keyCode ) ;
161
+ match = self . activeMenu . children ( ".ui-menu-item" ) . filter ( function ( ) {
162
+ return new RegExp ( "^" + escape ( character ) , "i" )
163
+ . test ( $ ( this ) . children ( "a" ) . text ( ) ) ;
164
+ } ) ;
165
+ }
166
+ if ( match . length ) {
167
+ self . focus ( event , match ) ;
168
+ if ( match . length > 1 ) {
169
+ self . previousFilter = character ;
170
+ self . filterTimer = setTimeout ( function ( ) {
171
+ delete self . previousFilter ;
172
+ } , 1000 ) ;
173
+ } else {
172
174
delete self . previousFilter ;
173
- } , 1000 ) ;
175
+ }
174
176
} else {
175
177
delete self . previousFilter ;
176
178
}
177
- } else {
178
- delete self . previousFilter ;
179
179
}
180
180
}
181
181
} ) ;
0 commit comments