Могу ли я добавить один и тот же eventListner к элементу дважды, но вызывая разные функции? - PullRequest
0 голосов
/ 08 ноября 2019

Можно ли дать элементу тот же прослушиватель событий, но с двумя вызовами разных функций?

Примерно так

document.getElementById("searchBar").addEventListener("keyup", populateTable);

document.getElementById("searchBar").addEventListener("keyup", createButtons);

Я пытался сделать это, но по своему опыту я вообще получаю только 1 из прослушивателя событий.

Поэтому в моей программе есть панель поиска, которая, когда пользователь вводит ее,, таблица ниже сортируется в соответствии с тем, что набрал пользователь. Эта панель поиска и таблица принадлежат модулю, который кто-то создал, но я использую для своего проекта. В этом модуле программа добавляет в панель поиска «изменение» прослушивателя событий, чтобы каждый раз, когда пользователь вводит данные, осуществлял поиск в таблице. Для моей программы я также хочу добавить того же слушателя «изменения» в строку поиска, но я хочу подключить его к функции, которую я создал, которая будет делать что-то другое. Я все еще хочу, чтобы панель поиска меняла таблицу, когда пользователь вводит в нее данные, но я также хочу, чтобы она вызывала созданную мной функцию.

Я знаю, что мог бы просто войти в код модуля и вызвать мою функцию из прослушивателя событий, созданного другим человеком, но я хочу посмотреть, есть ли способ решить эту проблему без редактирования кода модуля.

Спасибо!

1 Ответ

1 голос
/ 09 ноября 2019

Я бы сделал main функцию, которая вызывает обе функции, и подключил бы ее к слушателю событий. Позвольте мне объяснить, что я имею в виду:

var call_both = function() {
    populateTable();
    createButtons();
}

Затем просто подключите это к слушателю событий.

document.getElementById("searchBar").addEventListener("keyup", call_both);
...