firebug говорит, что моя функция никогда не выполнялась - не могу понять, почему - PullRequest
0 голосов
/ 28 октября 2009

Когда я отправляю #top_cat, консоль Firebug говорит "ok" из-за отладочного текста, который я печатаю здесь:

function submitHandler() {
    console.log("ok");
    $.post($(this).attr('action'), $(this).serialize(), null, "script");
    return false;
}

Но если я нажму #tip_click, я увижу "start" и "end" в выводе, но он никогда не скажет "ok" - то есть submitHandler никогда не запускался.

Что-то явно не так с этим кодом?

$(document).ready(function () {

    $('#top_cat').submit(submitHandler);

    $("#tip_click").click(function() {
        console.log("start");
        $("#high_hat").submit(submitHandler);
        console.log("end");
    });

});

Ответы [ 2 ]

2 голосов
/ 28 октября 2009
$("#high_hat").submit(submitHandler);

Регистрирует обработчик onsubmit, но не запускает обработчик. Он устанавливает обработчик, который будет вызываться при отправке #high_hat. Если вы хотите сразу запустить обработчик отправки, вам нужно запустить его самостоятельно, вызвав submit() (без аргументов):

console.log("start");
$("high_hat").submit(submitHandler).submit();
console.log("end");
0 голосов
/ 28 октября 2009

Почему бы не попробовать:

$("#tip_click").click(function() {
        console.log("start");
        submitHandler();
        console.log("end);
});

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

Я не вижу никакой пользы для отправки, как предлагает Джон, поскольку вы все равно возвращаете false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...