jQuery load () с функцией обратного вызова не будет захватывать click () - PullRequest
0 голосов
/ 30 сентября 2010

Мне не повезло в получении диалогового окна jqueryui для загрузки формы ajax, которую inturn отправляет через ajax.

Все работает до точки перехвата формы, которая отправляется, и вместо этого отправляет ее через вызов ajax. Таким образом, действие формы запускается и браузер перенаправляется. Вызов ajax никогда не выполняется.

Мой код выглядит следующим образом

$(document).ready(function() {
$('.viewOrder').click(function() {
    $('#displayOrder').load(this.href, [], function() {
        console.log("landed here");

            $('#blah').click(function() {
                console.log("submiting the form via ajax");

                $.ajax({
                    url: "/ajax/orderupdate",
                    type: "GET",
                    data: data,
                    cache: false,

                    //success
                    success: function (data) {
                        console.log("worked:");
                    }
                });
                return false;
            });
    });
    return false;
});

});

.viewOrder - это href, загруженный ajax. Это отлично работает. Я прочитал много подобных вопросов здесь, и кажется, что load () не выполняет сценарии, которые встроены в HTML возврата, но мой код возврата - чистый HTML без сценариев. Есть идеи?

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

ИМХО, вы должны попытаться перехватить submit вместо щелчка, чтобы вы также предотвратили отправку, сделанную с клавиатуры, и это могло бы даже решить вашу проблему.

0 голосов
/ 30 сентября 2010

События связаны с загрузкой страницы.При загрузке страницы формы, которую вы связываете, событие click не существует.Я использую плагин livequery, но они добавили Live в jquery 4, который вы также можете использовать (у меня были некоторые проблемы с IE, поэтому я вернулся к livequery)

Так что загружайте livequery своими скриптами http://docs.jquery.com/Plugins/livequery

и изменить

$ ('# orderUpdate'). Submit (function () {

на

$ ("# orderUpdate"). Livequery ("submit", function () {

...