Das Problem scheint mir hier zu sein:
Code
function birdSearch(){
searchWord = controller.getSearchString();
ul = theList;
li = ul.getElementsByTagName("li");
for (i = 0; i < li.length; i++) {
birdName = li[i].getElementsByClassName("bird-name")[0].innerHTML.toLocaleLowerCase();
birdAddButton = li[i].getElementsByClassName("add-bird-button")[0];
birdAddButton.addEventListener("click", addNewBird);
if (birdName.includes(searchWord)) {
li[i].style.display = "";
} else {
li[i].style.display = "none";
}
}}
Alles anzeigen
Diese Funktion wird jedes Mal aufgerufen, wenn sich im Eingabefeld etwas ändert. Und jedes Mal wird der Eventlistener mit addNewBird hinzugefügt. Du darfst diesen Listener nur einmal hinzu fügen, wenn Du die Liste anlegst.