summaryrefslogtreecommitdiffstats
path: root/awesomplete.js
diff options
context:
space:
mode:
authorLea Verou <lea@verou.me>2015-03-04 01:26:57 +0200
committerLea Verou <lea@verou.me>2015-03-04 01:26:57 +0200
commit735b44d02c4d24d90a8a06614ee42b867f7e8ce3 (patch)
tree38cfc19d164be8f2475866817b827c5a327bcd8d /awesomplete.js
parente0f53dae8bf7221dad0788097eeef87ed61fb025 (diff)
parent2f271891ac0cae01d2e99e1ca9fbbd554e7d3163 (diff)
downloadawesomplete-735b44d02c4d24d90a8a06614ee42b867f7e8ce3.zip
awesomplete-735b44d02c4d24d90a8a06614ee42b867f7e8ce3.tar.gz
awesomplete-735b44d02c4d24d90a8a06614ee42b867f7e8ce3.tar.bz2
Merge pull request #1387 from alexdiliberto/bug-fix-keydown-ul-hidden
[BUGFIX] Keydown evts when `ul` hidden shouldn't trigger component handling
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 bb93afa..4053101 100644
--- a/awesomplete.js
+++ b/awesomplete.js
@@ -64,16 +64,20 @@ var _ = 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;