Дмитрий Беляев, а что не так с его кодом? Он выполняет свои функции как надо, немного переделал под себя, но работает.
Спросил с целью расширения познаний
Andrej Sharapov, трансформация дом коллекции в массив, только ради того чтобы сделать у него map, который ничего не возвращает + создание функции в цикле
как итог - вместо O(n) у нас сложность O(3n), вместо 1 функции и 1 дом коллекции из n элементов у нас в памяти n функций, 1 дом коллекция из n элементов и 2 массива из n элементов - и вот Ваш сайт уже жрет мою оперативку и мои такты проца, а как следствие электричество, за которое я плачу свои кровнозаработанные, и при его посещении я захочу Вас проклясть и побыстрее закрыть Ваш тормозящий сайт
Никита Егоров, в предложенном Вами варианте сложность выходит O(1) - что еще лучше чем у меня, ибо вместо цикла у Вас просто 1 действие для подписки на события
Ну от поиска в DOM мы тут абстрагируемся, ибо мало на него можем повлиять
Никита Егоров, я успел прочесть.
добавлю еще, что я бы избавился от closest если нужна поддержка старья, полифил не очень шустро работает
тем более можно просто заменить на проверку наличия класса grad у event.target