@beefront17

Event onBlockShown, javascript, как сделать?

Добрый день! Подскажите пожалуйста правильное решение!
Есть чекаут страница построенная на табах, в каждом табе есть форма, табы переключаются на типа сабмит этой формы или на клик самого табу если ты прошел этот шаг. В каждом табе есть селект с каким-то назначением.
Вопрос как извлекать value селекта когда ты только перешол на таб. Вешать ивент на два элемента как-то не очень разумно плюс таб открывается с задержкой так как есть всякие проверки.
Нужен какой-то ивент, типа onBlockShown)
Буду благодарен за любые идеи)
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 2
@AnneSmith
самая ленивая
вы все все очень правильно думаете, и скорее всего у вас есть шанс на хорошее будущее в разработке, но пока адепты ангуляра, реакта и вью об этом не додумались и продолжают вешать хэндлеры-дубликаты на каждый элемент, который может получить событие: будет у вас пять кнопок, от которых зависит одно значение элемента, они повесят пять хэндлеров для этого значения

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

чтобы сделать то, что вы хотите, нужно чтобы все элементы интерфейса имели свои уникальные ID и были связаны отношениями родитель-ребенок в дереве, по которому легко передавать "ивент, типа onBlockShown", причем даже достаточно передавать универсальный всех ивент синхронизации, по которому остальные элементы будут делать все, что им нужно сделать в этот момент

при таком раскладе у вас будет полная свобода: вы сможете передавать любой ивент всему приложению/форме, можете передавать только отдельной ветке, только одному элементу или всем элементам, которые ожидают вашего специального события "onBlockShown"

по такой технологии мы снизили сроки разработки с нескольких месяцев работы 2-3 разработчиков до двух-трех недель, включая интенсивное тестирование, одним разработчиком, колоссально минимизировали количество ошибок, причем все наши элементы интерфейса и вся логика легко переносится в любой другой проект
Ответ написан
hahenty
@hahenty
('•')
В тех местах программы, где таб должен открываться (после проверок или как), писать что-то типа
$('#that_tab').fire('blockshown');

и теперь будет событие blockshown на табах, на которые будет применяться такая строка.
Подписаться на это событие
$('.thesetabs').on('blockshown', eventProcedure);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы