summaryrefslogtreecommitdiffstats
path: root/awesomplete.js
diff options
context:
space:
mode:
Diffstat (limited to 'awesomplete.js')
-rw-r--r--awesomplete.js28
1 files changed, 18 insertions, 10 deletions
diff --git a/awesomplete.js b/awesomplete.js
index 82c18a5..442bfd1 100644
--- a/awesomplete.js
+++ b/awesomplete.js
@@ -64,16 +64,20 @@ var _ = self.Awesomplete = function (input, o) {
"keydown": function(evt) {
var c = evt.keyCode;
- if (c === 13 && me.selected) { // Enter
- evt.preventDefault();
- me.select();
- }
- else if (c === 27) { // Esc
- me.close();
- }
- else if (c === 38 || c === 40) { // Down/Up arrow
- evt.preventDefault();
- me[c === 38? "previous" : "next"]();
+ // If the dropdown `ul` is in view, then act on keydown for the following keys:
+ // Enter / Esc / Up / Down
+ if(me.opened) {
+ if (c === 13 && me.selected) { // Enter
+ evt.preventDefault();
+ me.select();
+ }
+ else if (c === 27) { // Esc
+ me.close();
+ }
+ else if (c === 38 || c === 40) { // Down/Up arrow
+ evt.preventDefault();
+ me[c === 38? "previous" : "next"]();
+ }
}
}
});
@@ -133,6 +137,10 @@ _.prototype = {
return this.index > -1;
},
+ get opened() {
+ return this.ul && this.ul.getAttribute("hidden") == null;
+ },
+
close: function () {
this.ul.setAttribute("hidden", "");
this.index = -1;