From e67e1e42eed2eb4cb5a1a45d70f9a6c70ee1b074 Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Fri, 5 Jan 2018 15:00:31 +0530 Subject: [PATCH] Simplify key press event handlers Remove eventSupported checks and just rely on jquery.keydown --- src/jquery.uls.core.js | 30 +----------------------------- src/jquery.uls.languagefilter.js | 29 +++++++---------------------- 2 files changed, 8 insertions(+), 51 deletions(-) diff --git a/src/jquery.uls.core.js b/src/jquery.uls.core.js index 5cedb02..ff4077a 100644 --- a/src/jquery.uls.core.js +++ b/src/jquery.uls.core.js @@ -225,12 +225,7 @@ } ); // Handle key press events on the menu - this.$menu.on( 'keypress', $.proxy( this.keypress, this ) ) - .on( 'keyup', $.proxy( this.keyup, this ) ); - - if ( this.eventSupported( 'keydown' ) ) { - this.$menu.on( 'keydown', $.proxy( this.keypress, this ) ); - } + this.$menu.keydown( $.proxy( this.keypress, this ) ); languagesCount = Object.keys( this.options.languages ).length; lcd = this.$resultsView.lcd( { @@ -280,18 +275,6 @@ this.hide(); }, - keyup: function ( e ) { - if ( !this.shown ) { - return; - } - - if ( e.keyCode === 27 ) { // escape - this.cancel(); - e.preventDefault(); - e.stopPropagation(); - } - }, - keypress: function ( e ) { if ( !this.shown ) { return; @@ -312,17 +295,6 @@ } }, - eventSupported: function ( eventName ) { - var isSupported = eventName in this.$menu; - - if ( !isSupported ) { - this.$element.setAttribute( eventName, 'return;' ); - isSupported = typeof this.$element[ eventName ] === 'function'; - } - - return isSupported; - }, - /** * Get the panel menu width parameter * @return {string} diff --git a/src/jquery.uls.languagefilter.js b/src/jquery.uls.languagefilter.js index 8a471c9..8691240 100644 --- a/src/jquery.uls.languagefilter.js +++ b/src/jquery.uls.languagefilter.js @@ -68,12 +68,8 @@ }, listen: function () { - this.$element.on( 'keypress', $.proxy( this.keyup, this ) ) - .on( 'keyup', $.proxy( this.keyup, this ) ); - if ( this.eventSupported( 'keydown' ) ) { - this.$element.on( 'keydown', $.proxy( this.keyup, this ) ); - } + this.$element.keydown( $.proxy( this.keypress, this ) ); if ( this.$clear.length ) { this.$clear.on( 'click', $.proxy( this.clear, this ) ); @@ -82,7 +78,7 @@ this.toggleClear(); }, - keyup: function ( e ) { + keypress: function ( e ) { var suggestion, query, languageFilter; switch ( e.keyCode ) { @@ -107,11 +103,11 @@ query = $.trim( this.$element.val() ).toLowerCase(); if ( this.selectedLanguage ) { - // this.selectLanguage will be populated from a matching search + // this.selectLanguage will be populated from a matching search this.options.onSelect( this.selectedLanguage ); } else if ( this.options.languages[ query ] ) { - // Search is yet to happen (in timeout delay), - // but we have a matching language code. + // Search is yet to happen (in timeout delay), + // but we have a matching language code. this.options.onSelect( query ); } @@ -120,9 +116,9 @@ languageFilter = this; if ( e.which < 32 && - e.which !== 8 // Backspace + e.which !== 8 // Backspace ) { - // ignore any ASCII control characters + // ignore any ASCII control characters break; } @@ -321,17 +317,6 @@ matcher.test( $.uls.data.getAutonym( langCode ) ) || matcher.test( langCode ) || matcher.test( $.uls.data.getScript( langCode ) ); - }, - - eventSupported: function ( eventName ) { - var isSupported = eventName in this.$element; - - if ( !isSupported ) { - this.$element.setAttribute( eventName, 'return;' ); - isSupported = typeof this.$element[ eventName ] === 'function'; - } - - return isSupported; } };