Приоритет события jquery

У меня есть две функции, связанные с событием submit формы. Каждая функция находится в другом месте, и одна функция может влиять на другую.

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

Ответ 1

Есть четыре способа, о которых я могу думать:

  • Управление обратными вызовами самостоятельно и только один обработчик событий, который вызывает функции в нужном порядке.

  • В функции, которая должна быть запущена последним, выполните фактическую работу в тайм-аут с нулевой миллисекундой. Если все остальные функции работают синхронно (и вы можете жить с последним, который не происходит во время вспучивания события), это приведет к тому же.

  • Привяжите обработчик последней версии выше в дереве DOM. Вам нужно будет проверить, работает ли это с событиями submit; пузырь этих событий не работает в IE, но в jQuery docs упоминается, что это было нормализовано в jQuery. Возможно, стоит попробовать.

  • Несколько аналогично 1. при привязке любого другого обработчика, чем к низкоприоритетному, отвяжите последнее, привяжите новый и, наконец, повторно привяжите последний к запуску.

Ответ 2

Вы можете использовать пользовательские события для обработчиков и первыми обработчиками захватить submit, чтобы предотвратить его, сделать свой материал, запустить событие для второго обработчика, а второй сделать submit

Ответ 3

Если вы хотите использовать/можете использовать пользовательские события, вы можете использовать https://github.com/fusion-events/fusion-framework