0
Voltooid

GlobalListener обработка из разных мест

Виктор 5 jaar geleden in Tips and Tricks bijgewerkt door Vladimir Ovchinnikov (expert) 5 jaar geleden 3

Это отличный слушатель, но я очень надеюсь, что появится возможность в разных местах кода описывать обработку событий.

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

Но вот это ограничение вынуждает меня все обработчики изменений тегов выносить в один файл, где все в кучу - все обработчики от разных функций. Это ад какой-то. Портянка не читаемая..

Подписаться то я могу везде, а вот как обработать на стороне - не знаю. Как передать параметры, этого слушателя при сработке в другую функцию, которая будет размещена в другом файле скрипте, я не знаю. Может, есть такая возможность?

Under review

Добрый день.

Для обработки изменения тэгов можно использовать простые слушатели с событием EVENT_TAG_CHANGE.

Если же по каким-то причинам нужно использовать именно глобальный слушатель с EVENT_GLOBAL_TAG_CHANGE, то можно обрабатывать именованными функциями, объявленными за пределами глобального слушателя. В глобальном слушателе может быть только одна функция. Однако не запрещается внутри неё вызывать объявленные ранее, в т. ч. в глобальной области видимости. Нужные значения можно сохранять в переменные, которые находятся в области видимости этих функций (как вариант: в глобальные переменные).

Владимир, добрый день! 

Я попробовал сделать то, что вы написали, у меня все получилось. Действительно, простое решение, а не догадался его применить. Спасибо!