@@ -37,6 +37,14 @@ export function init(id, invoke) {
37
37
} )
38
38
}
39
39
40
+ EventHandler . on ( input , 'blur' , e => {
41
+ el . classList . remove ( 'show' ) ;
42
+ const triggerBlur = input . getAttribute ( 'data-bb-blur' ) === 'true' ;
43
+ if ( triggerBlur ) {
44
+ invoke . invokeMethodAsync ( 'TriggerBlur' ) ;
45
+ }
46
+ } ) ;
47
+
40
48
EventHandler . on ( input , 'focus' , e => {
41
49
const showDropdownOnFocus = input . getAttribute ( 'data-bb-auto-dropdown-focus' ) === 'true' ;
42
50
if ( showDropdownOnFocus ) {
@@ -46,14 +54,6 @@ export function init(id, invoke) {
46
54
}
47
55
} ) ;
48
56
49
- EventHandler . on ( menu , 'click' , e => {
50
- el . classList . remove ( 'show' ) ;
51
- if ( el . triggerEnter !== true ) {
52
- invoke . invokeMethodAsync ( 'TriggerBlur' ) ;
53
- }
54
- delete el . triggerEnter ;
55
- } ) ;
56
-
57
57
EventHandler . on ( input , 'change' , e => {
58
58
invoke . invokeMethodAsync ( 'TriggerChange' , e . target . value ) ;
59
59
} ) ;
@@ -113,17 +113,17 @@ const handlerKeyup = (ac, e) => {
113
113
if ( ! skipEnter ) {
114
114
const current = menu . querySelector ( '.active' ) ;
115
115
if ( current !== null ) {
116
- el . triggerEnter = true ;
117
116
current . click ( ) ;
117
+ input . blur ( ) ;
118
118
}
119
119
invoke . invokeMethodAsync ( 'EnterCallback' , input . value ) ;
120
120
}
121
121
}
122
122
else if ( key === 'Escape' ) {
123
123
const skipEsc = el . getAttribute ( 'data-bb-skip-esc' ) === 'true' ;
124
124
if ( skipEsc === false ) {
125
- EventHandler . trigger ( menu , 'click' ) ;
126
125
invoke . invokeMethodAsync ( 'EscCallback' ) ;
126
+ input . blur ( ) ;
127
127
}
128
128
}
129
129
else if ( key === 'ArrowUp' || key === 'ArrowDown' ) {
@@ -172,7 +172,7 @@ export function dispose(id) {
172
172
}
173
173
}
174
174
EventHandler . off ( input , 'keyup' ) ;
175
- EventHandler . off ( menu , 'click ' ) ;
175
+ EventHandler . off ( input , 'blur ' ) ;
176
176
Input . dispose ( input ) ;
177
177
}
178
178
}
0 commit comments