diff options
author | Lea Verou <lea@verou.me> | 2015-03-04 01:26:57 +0200 |
---|---|---|
committer | Lea Verou <lea@verou.me> | 2015-03-04 01:26:57 +0200 |
commit | 735b44d02c4d24d90a8a06614ee42b867f7e8ce3 (patch) | |
tree | 38cfc19d164be8f2475866817b827c5a327bcd8d /awesomplete.js | |
parent | e0f53dae8bf7221dad0788097eeef87ed61fb025 (diff) | |
parent | 2f271891ac0cae01d2e99e1ca9fbbd554e7d3163 (diff) | |
download | awesomplete-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.js | 28 |
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; |