-
Notifications
You must be signed in to change notification settings - Fork 180
Open
Description
The mouse event handlers added to the 'Powered by MapBox' link at the foot of the suggestions list are added again to _footerNode each time the suggestions are redrawn. This leads to an accumulation of many duplicate 'mousedown' and 'mouseup' handlers.
mapbox-gl-geocoder/lib/index.js
Lines 288 to 303 in 66c236f
| // Add support for footer. | |
| var parentDraw = typeahead.list.draw; | |
| var footerNode = this._footerNode = getFooterNode(); | |
| typeahead.list.draw = function() { | |
| parentDraw.call(this); | |
| footerNode.addEventListener('mousedown', function() { | |
| this.selectingListItem = true; | |
| }.bind(this)); | |
| footerNode.addEventListener('mouseup', function() { | |
| this.selectingListItem = false; | |
| }.bind(this)); | |
| this.element.appendChild(footerNode); | |
| }; |
The event handlers should be added to _footerNode only once, outside of typeahead.list.draw()
I noticed this because it was apparent that the _footerNode wasn't being garbage collected in a Single Page App that I was debugging.
Metadata
Metadata
Assignees
Labels
No labels