Skip to content

Suggest list MouseEvent listener duplicates #532

Open
@japonicus

Description

@japonicus

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.

// 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions