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

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

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

3 ответов


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

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

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

  3. свяжите обработчик to-be-fired-last выше в дереве DOM. Вам придется проверить, работает ли это с submit события; пузырение этих событий не работает в IE, но jQuery docs учтите, что это было нормализовано в jQuery. Может, стоит попробовать.

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


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


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