Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit d7cdcc3

Browse files
committed
Merge pull request #7989 from adobe/rlim/dropdown-handler-cleanup
Fix filter dropdown list highlighting issue with re-registering mouse event handlers.
2 parents 7927019 + 2e716e7 commit d7cdcc3

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/utils/DropdownEventHandler.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,21 @@ define(function (require, exports, module) {
293293
}
294294
});
295295
};
296+
297+
/**
298+
* Re-register mouse event handlers
299+
* @param {!jQueryObject} $list newly updated list object
300+
*/
301+
DropdownEventHandler.prototype.reRegisterMouseHandlers = function ($list) {
302+
if (this.$list) {
303+
this.$list.off("click mouseover");
304+
305+
this.$list = $list;
306+
this.$items = $list.find("li");
307+
308+
this._registerMouseEvents();
309+
}
310+
};
296311

297312
// Export public API
298313
exports.DropdownEventHandler = DropdownEventHandler;

src/widgets/DropdownButton.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,9 @@ define(function (require, exports, module) {
150150
// set up for any custom UI in the list.
151151
$(this).triggerHandler("listRendered", [parent]);
152152

153+
// Also need to re-register mouse event handlers with the updated list.
153154
if (this._dropdownEventHandler) {
154-
// Re-create and re-attach event handlers for the new rendered list.
155-
this._dropdownEventHandler = new DropdownEventHandler(parent, this._onSelect.bind(this), this._onDropdownClose.bind(this));
156-
this._dropdownEventHandler.open();
155+
this._dropdownEventHandler.reRegisterMouseHandlers(parent);
157156
}
158157

159158
return parent;

0 commit comments

Comments
 (0)