From ab74c547c49d22c1789f6b54089dcc064644a2c7 Mon Sep 17 00:00:00 2001 From: Kerry Johnson Date: Thu, 5 May 2022 19:23:58 -0500 Subject: [PATCH] Fix keyboard navigation in dropdown: Uncaught TypeError: Cannot read properties of undefined (reading 'focus') The previous change assumed jQuery was in use (angular.element uses jQuery Lite by default which does NOT support class names with .find() - https://docs.angularjs.org/api/ng/function/angular.element). This change works without wrapping angular.element() around the selectors but I did it to keep it AngularJS-ish (don't really know if there are benefits to making it into a jqLite or jQuery object again). --- src/dropdown/dropdown.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dropdown/dropdown.js b/src/dropdown/dropdown.js index 02ee0b7..9d99ba6 100644 --- a/src/dropdown/dropdown.js +++ b/src/dropdown/dropdown.js @@ -194,8 +194,8 @@ angular.module('ui.bootstrap.dropdown', ['ui.bootstrap.multiMap', 'ui.bootstrap. scope.focusDropdownEntry = function(keyCode) { var elems = self.dropdownMenu ? //If append to body is used. - angular.element(self.dropdownMenu).find('.dropdown-item') : - $element.find('div').eq(0).find('a.'); + angular.element(self.dropdownMenu[0].querySelectorAll('.dropdown-item')) : + angular.element($element[0].querySelectorAll('div .dropdown-item')); switch (keyCode) { case 40: {