Как изменить порядок выполнения одного и того же события?

Jquery bind - это замечательно, но я не знаю, в каком порядке происходит привязка. Моя текущая проблема заключается в следующем:

$(document.body).delegate('form', methods.checkForm);
$('form').bind('submit', methods.submitFormIfCheckedFormIsTrue);

methods.checkForm = function (e) {
    if (!$(this).isVerified()) {
        return false;
    }
    return true;
};
methods.submitFormIfCheckedFormIsTrue = function (e) {
    e.preventDefault();
    $.ajax("/submitForm", {
        data:$(this).serialize(),
        type:"post"
    });
};

Это явно не тот код, который я использую, но он довольно близок. Происходит следующее: функция submitFormIfCheckedFormIsTrue срабатывает до или во время функции checkForm, так что проверка оказывается бесполезной. Мой хак для этого состоял в том, чтобы добавить класс "checked" к форме и проверить, имеет ли форма этот класс в другой функции... но затем вы нажимаете submit, он проверяет, затем вы должны нажать его снова, чтобы отправить его, если все прошло правильно... что является отсталым.

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

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

5
задан adiktofsugar 15 February 2012 в 23:05
поделиться